crossplatform.ru

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

> mainwindow.ui и ui_mainwindow.h не связаны?
NordWest
  опции профиля:
сообщение 26.2.2013, 10:35
Сообщение #1


Студент
*

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

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




Репутация:   0  


В Креаторе правлю форму mainwindow.ui, но эти изменения не отражаются в программе. Т.е. сменил QTreeWidget на QTableWidget, но в программе не могу получить на него ссылку.
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    mainTable = qFindChild<QTableWidget*>(this, "tableWidget");
...
}

Выдает NULL.
Pаглянул в ui_mainwindow.h, а там всё прежнее, с QTreeWidget. Пришлось вручную менять. Но получается, что ui форма никак не связана с проектом. Отказываться от Дизайнера и влезать в ui_mainwindow.h, который должен бы генерироваться из .ui файла? И почему он этого не делает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 26.2.2013, 10:56
Сообщение #2


Старейший участник
****

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

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




Репутация:   8  


Чеклист:
0. ui добавлен в проект.
1. Сохранить ui в дизайне.
2. Собрать проект.

Кроме того не обязательно делать FindChild, можно просто обращатся через ui
ui->tableWidget


Сообщение отредактировал lanz - 26.2.2013, 10:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
NordWest
  опции профиля:
сообщение 26.2.2013, 11:41
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(lanz @ 26.2.2013, 11:56) *
Чеклист:
0. ui добавлен в проект.
1. Сохранить ui в дизайне.
2. Собрать проект.

Кроме того не обязательно делать FindChild, можно просто обращатся через ui
ui->tableWidget

Все три пункта. Добавил ui_mainwindow.h, пересобрал, ничего. Удалил его (переименовал), ничего. Не генерируется он совсем из .ui файла как написано у него же в заголовке. Может как-то командно можно его генерацию выполнить?

Ага, дело в теневой сборке. Правильный фаил создается в отдельной директории. Но не понятно как к нему обратиться, ведь в mainwindow.cpp указан:
#include "ui_mainwindow.h"

И убрав его получаешь ошибку.

Ага, получилось. Видимо ui_mainwindow.h мешал в директории с исходниками. Нужно было его удалить, почистить проект и пересобрать. Тогда всё заработало.

Сообщение отредактировал NordWest - 26.2.2013, 11:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 26.12.2024, 4:09