crossplatform.ru

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


  Ответ в Заполнить виджет окна...
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
silver47 Дата 2.5.2011, 5:56
  В данной конкретной ситуации деструктор создала сама среда разработки. В нем необходимо уничтожить те объекты, которые были созданы в этом классе, но для которых не установлен родитель. Ну, например, в классе создается указатель на файл, для работы с ним. При уничтожении класса хорошо бы закрыть этот файл и удалить указатель. Или в классе создаете 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
// Для небольших программ это не проблема, если эта программа содержит один виджет - экземпляр этого класса, то после закрытия виджета
// закроется и сама программа, а при закрытии программы этот объект будет уничтожен. В крупных же проектах, где динамически создаются 
// и уничтожаются экземпляры разных классов и не по разу - это может вылиться в проблему
}
fortero Дата 2.5.2011, 0:42
  Спасибо большое, Вы по настоящему помогли, всё стало таким каким я и представлял себе! Я под редактировал класс который отвечал за таблицу, и всё просто супер!
Извини меня за глупые вопросы я только начинаю, много читаю но всё не усваивается сразу, а вот когда кто то разжуёт сразу всё понятно и наглядно, к примеру мой класс для таблиц, он заниматься будит разными таблицами и у всех будет разное число столбцов я уже решил с этим проблему но главное Вы всё показали наглядно и понятно!
Есть ещё вопрос: я заметил у вас присутствие в коде деструктора…
Что такое деструктор я имею представление, Шилдта читал, и Страуструпа… Суть в том что бы разрушать объект, это понятно, но в Qt в книжках и в приложениях которые даются в примерах я не замечал а у вас я вижу, объясните как им пользоваться тут он нужен? Для чего вы вписал у себя в коде? Мне эти детали очень важны у меня всегда много вопросов, так как - дело для меня это новое не освоенное! Как говорится в фильме)))
Большое спасибо за внимание и помощь!
silver47 Дата 1.5.2011, 20:16
  Ну чего Вы так прицепились к этому компоновщику?! Он свое дело сделал - растянул таблицу по своему размеру, а вот то что таблица не умеет изменять размеры своих столбцов под свой размер - это другое дело, нужно ее научить. Научить можно двумя способами
  1. Создать свою таблицу, унаследовавшись от сущестующей и добавив необходимый функционал
  2. Установить фильтр событий, отловить событие изменения размера таблицы и обработать его в другом методе


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

UPD: Все тот же Макс Шлее страница 283
fortero Дата 1.5.2011, 18:26
  Добрый день!
Извините, что пропал… Конструктор суб окна?
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 будет и хотелось решить проблему с автоматическим растягиванием.
Буду очень признателен, спасибо за внимание!
Litkevich Yuriy Дата 30.4.2011, 20:58
 
Цитата(fortero @ 29.4.2011, 21:47) *
У меня всё в коде
показывай код контсруктора субокна.

П.С.
до секретов ещё ой как далеко, так что выкладывай в форум.

П.П.С.
весь код приложения не интересен и будет лишь захламлять форум

Цитата(silver47 @ 30.4.2011, 7:46) *
Мне казалось этот вопрос решили еще тут
похоже на то
silver47 Дата 30.4.2011, 4:46
  Мне казалось этот вопрос решили еще тут
fortero Дата 29.4.2011, 18:47
 
Цитата(Litkevich Yuriy @ 29.4.2011, 16:54) *
fortero, как делал субокно? В коде, в дизайнере?


В коде...
У меня всё в коде, могу дать посмотреть, но только через электронку...
Litkevich Yuriy Дата 29.4.2011, 16:54
  fortero, как делал субокно? В коде, в дизайнере?
fortero Дата 29.4.2011, 16:31
 
Цитата(Litkevich Yuriy @ 29.4.2011, 10:33) *
Цитата(fortero @ 27.4.2011, 4:19) *
а как мне сделать, что бы таблица равномерно увеличивалась при увиличении окна, а то она статична в размере,
научиться пользоваться компоновщиками (QLayout's)

Но а Вы не подкажите?
Litkevich Yuriy Дата 29.4.2011, 10:33
 
Цитата(fortero @ 27.4.2011, 4:19) *
а как мне сделать, что бы таблица равномерно увеличивалась при увиличении окна, а то она статична в размере,
научиться пользоваться компоновщиками (QLayout's)
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 11:30