crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3  
Ответить в данную темуНачать новую тему
> Заполнить виджет окна..., Заполнить равномерно виджет окна...
fortero
  опции профиля:
сообщение 1.5.2011, 18:26
Сообщение #21


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день!
Извините, что пропал… Конструктор суб окна?
second.h
#include <QtGui>
#include <QtSql>

#include "dbconnect.h"
#include "tablecl.h"

class SecondWin : public QMainWindow {
    Q_OBJECT
public:
    SecondWin();
    bool newWi(int rwtrig); //Новое окно второго класса
    //
    QString friendWin();
    QString currentFile(){ return curWin; }
    
private:
    QString strName(const QString &fullFN);
    QString curWin;
    //Область второго окна меню и др.
    DbConnect *db;
    TableCl *newtab;
    
    
    ///
};


Я согласен, что секретов нет, да их быть не может просто над кодом работаю я не один, и я не знаю как другие отреагируют…
А вы не могли показать примеры как в Layout упровлять таблицей, что бы Layout автоматом её растягивал???
Вопрос действительно решился с той задачей, так как мне больше 2 колонок не надо…
Но очень скоро понадобится строить таблицы где минимум 5 будет и хотелось решить проблему с автоматическим растягиванием.
Буду очень признателен, спасибо за внимание!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 1.5.2011, 20:16
Сообщение #22


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Ну чего Вы так прицепились к этому компоновщику?! Он свое дело сделал - растянул таблицу по своему размеру, а вот то что таблица не умеет изменять размеры своих столбцов под свой размер - это другое дело, нужно ее научить. Научить можно двумя способами
  1. Создать свою таблицу, унаследовавшись от сущестующей и добавив необходимый функционал
  2. Установить фильтр событий, отловить событие изменения размера таблицы и обработать его в другом методе


Как сделать первый вариант я уже писал, применительно к QTableView. Прикрепляю проект с реализацией второго варианта. В нем все та же таблица 5 на 4, в которой столбцы всегда делят размер таблицы в пропорции 10% 25% 25% 40%

UPD: Все тот же Макс Шлее страница 283

Сообщение отредактировал silver47 - 1.5.2011, 20:24
Прикрепленные файлы
Прикрепленный файл  temp.zip ( 2.67 килобайт ) Кол-во скачиваний: 123
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 2.5.2011, 0:42
Сообщение #23


Участник
**

Группа: Участник
Сообщений: 132
Регистрация: 4.12.2010
Пользователь №: 2242

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо большое, Вы по настоящему помогли, всё стало таким каким я и представлял себе! Я под редактировал класс который отвечал за таблицу, и всё просто супер!
Извини меня за глупые вопросы я только начинаю, много читаю но всё не усваивается сразу, а вот когда кто то разжуёт сразу всё понятно и наглядно, к примеру мой класс для таблиц, он заниматься будит разными таблицами и у всех будет разное число столбцов я уже решил с этим проблему но главное Вы всё показали наглядно и понятно!
Есть ещё вопрос: я заметил у вас присутствие в коде деструктора…
Что такое деструктор я имею представление, Шилдта читал, и Страуструпа… Суть в том что бы разрушать объект, это понятно, но в Qt в книжках и в приложениях которые даются в примерах я не замечал а у вас я вижу, объясните как им пользоваться тут он нужен? Для чего вы вписал у себя в коде? Мне эти детали очень важны у меня всегда много вопросов, так как - дело для меня это новое не освоенное! Как говорится в фильме)))
Большое спасибо за внимание и помощь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 2.5.2011, 5:56
Сообщение #24


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


В данной конкретной ситуации деструктор создала сама среда разработки. В нем необходимо уничтожить те объекты, которые были созданы в этом классе, но для которых не установлен родитель. Ну, например, в классе создается указатель на файл, для работы с ним. При уничтожении класса хорошо бы закрыть этот файл и удалить указатель. Или в классе создаете QTextDocument для экспорта какого-либо содержимого в файл odt или PDF. Опять же его следует уничтожить, иначе вероятна утечка памяти. Приведу пример еще нагляднее:
Widget::Widget(QWidget *parent) : Qwidget(parent){ // конструктор Вашего виджета
QHBoxLayout *mainLay = new QHBoxLayout(this); // теперь для этого лайаута и для всех элементов, помещенных в него указан родитель
// все они будут автоматически уничтожены при уничтожении экземпляра этого класса
mainLay->addWidget(new Label("Some Text"));     // все в порядке, этот Label будет уничтожен при уничтожении экземпляра класса
memoryLeekLbl = new QLabel("this cause memory leek");  // а это уже утечка памяти.
memoryLeekLbl->show();    
// у этого объекта нет родителя и он не будет уничтожен при уничтожении экземпляра класса Widget
// Для небольших программ это не проблема, если эта программа содержит один виджет - экземпляр этого класса, то после закрытия виджета
// закроется и сама программа, а при закрытии программы этот объект будет уничтожен. В крупных же проектах, где динамически создаются
// и уничтожаются экземпляры разных классов и не по разу - это может вылиться в проблему
}


Сообщение отредактировал silver47 - 2.5.2011, 5:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 13:17