crossplatform.ru

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

RazrFalcon
  опции профиля:
сообщение 22.8.2010, 7:02
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Есть к примеру таблица(QTableWidget). К ней обращаюсь из разных функций. То есть если к примеру:
MainWindow::MainWindow(QWidget *parent) : QMainWindow (parent) 
{
...
QTableWidget* table = new QTableWidget;
...
}
могу обращятся к table только здесь, из другой функции не могу.
Если делаю наоборот, глобально создаю:
QTableWidget* table = new QTableWidget;
MainWindow::MainWindow(QWidget *parent) : QMainWindow (parent) 
{
...
...
}
то сразу QWidget: Must construct a QApplication before a QPaintDevice
Ошибка новичка, но не могу понять в чем проблема. Так как без дизайнера первый раз пишу.
PS прошу сильно не пинать :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 22.8.2010, 7:46
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(RazrFalcon @ 22.8.2010, 11:02) *
глобально создаю:
Во-первых, глобальные объекты инициализируются до вызова функции main. А виджетам нужно, чтобы уже был создан объект QApplication.
Во-вторых, нет никакой нужды делать таблицу глобальной.

Обычно делают класс, например, MainWindow. И создают в нём объекты относящиеся к нему.
Т.е. указатель на таблицу делают членом класса, и в конструкторе создают объект и им инициализируют указатель.

Полезно пройтись по учебному пособию по виджетам
Также рекомендую посмотреть длинное, но увлекательное и полезное учебное пособие из старой версии Qt





Старое полезно тем, что там многое разобрано по косточкам, даны домашние задания, а в результате получаешь вполне законченную игру-стрелялку
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Основы написания программы без использования дизанера   22.8.2010, 7:02
- - Litkevich Yuriy   Цитата(RazrFalcon @ 22.8.2010, 11:02) гло...   22.8.2010, 7:46
- - dreamcode   В классе MainWindow определи поле QTableWidget* t...   22.8.2010, 9:05
- - Litkevich Yuriy   Цитата(dreamcode @ 22.8.2010, 13:05) А по...   22.8.2010, 10:49
- - RazrFalcon   Почитал ссылки, ничего в принципе нового не открыл...   22.8.2010, 11:08
- - BRE   В .h вместо #include <QTableWidget> лучше до...   22.8.2010, 11:31
|- - RazrFalcon   Цитата(BRE @ 22.8.2010, 11:31) Не большие...   22.8.2010, 11:56
- - Litkevich Yuriy   Цитата(RazrFalcon @ 22.8.2010, 15:08) Поч...   22.8.2010, 12:38
|- - RazrFalcon   Цитата(Litkevich Yuriy @ 22.8.2010, 12:38...   22.8.2010, 15:00
- - Litkevich Yuriy   Цитата(RazrFalcon @ 22.8.2010, 19:00) Оно...   22.8.2010, 15:01
- - RazrFalcon   все как то туго... connect(table, SIGNAL(c...   22.8.2010, 15:24
- - dreamcode   Цитата(Litkevich Yuriy @ 22.8.2010, 10:49...   22.8.2010, 16:07
- - Litkevich Yuriy   Цитата(dreamcode @ 22.8.2010, 20:07) А чт...   22.8.2010, 16:37
|- - RazrFalcon   Разобрался с слотами-сигналами. Всякое простое тип...   26.8.2010, 23:04
- - kwisp   Цитата(RazrFalcon @ 27.8.2010, 0:04) Поче...   27.8.2010, 14:57
- - CodeHunter   Цитата(Litkevich Yuriy @ 22.8.2010, 16:37...   27.8.2010, 16:38
- - RazrFalcon   .cppMainWindow::MainWindow(QWidget *pa...   27.8.2010, 16:41
- - Litkevich Yuriy   Цитата(CodeHunter @ 27.8.2010, 20:38) При...   27.8.2010, 19:14


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.7.2025, 12:54