Russian Qt Forum
Апрель 30, 2024, 09:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование файлов с расширением ui  (Прочитано 7319 раз)
bob
Гость
« : Сентябрь 01, 2005, 23:35 »

Использую Qt 4.0.1. Создал форму, наследник от QMainWindow сохранил как myform.ui. Как теперь ее использовать в проекте? Я так понимаю, что компилятор должен сам создать файл заголовка и срр-файл. Под Linux в Qt 3.Х так вроде и есть. А вот под Windows в Qt 4.0.1 увы не получается. :cry: Может я чего-то не то делаю:
1. qmake -project
2. qmake -o Makefile AnyName.pro  или (qmake AnyName.pro)
3. make
Записан
nEoN
Гость
« Ответ #1 : Сентябрь 02, 2005, 08:20 »

Должен быть сгенерирован файл ui_myform.h.
Используется это так :
Код:
#include "ui_myform.h"
class MainWindow: public QMainWindow
{
public:
  Ui::myform ui; // myform - это значение свойства objectName (QMainWindow) в Qt дизайнере
  MainWindow()
  {
    ui.setupUi(this);
  }
};
Записан
bob
Гость
« Ответ #2 : Сентябрь 02, 2005, 08:32 »

А чем генерировать h-файл? срр-файл, как я понял для формы не обязателен?
Записан
nEoN
Гость
« Ответ #3 : Сентябрь 02, 2005, 09:21 »

Файл ui_myform.h генерирует Qt-шная утилита uic. Если ты компилируешь проект через Makefile, то в нём должен быть её вызов.
Посмотри содержимое  своего проекта AnyName.pro, там должна быть строка FORMS = myform.ui. Если её нет, то соответственно и в Makefile вызов uic не попадает.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Сентябрь 02, 2005, 09:23 »

По идее, это делает uic автоматом при компиляции формы.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
GrolfCry
Гость
« Ответ #5 : Сентябрь 02, 2005, 10:30 »

Цитата: "nEoN"
Должен быть сгенерирован файл ui_myform.h.
Используется это так :
Код:
#include "ui_myform.h"
class MainWindow: public QMainWindow
{
public:
  Ui::myform ui; // myform - это значение свойства objectName (QMainWindow) в Qt дизайнере
  MainWindow()
  {
    ui.setupUi(this);
  }
};


Мне вот интересно почему все повторяют на мой взгляд ошибку (или по крайней мере мне так не удобно)  из компьютерры объявляя ui внутри класса, хотя можно писать (а доке троллей так именно и написано)
Код:

class FrmLockImpl : public QMainWindow, public Ui::frmLock

тогда отпадает необходимость писать префикс ui  для доступа к объектам на форме  и при вызове setupUi
Записан
nEoN
Гость
« Ответ #6 : Сентябрь 02, 2005, 10:42 »

Я бы не стал называть это ошибкой. Мне например удобнее обращаться к элементам диалога через ui.lineEdit1, а к свойством самого класса без префиксов. Это позволяет наглядно разделить GUI от реализации логики.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #7 : Сентябрь 02, 2005, 11:00 »

Я уже кидал линк на простенькую статью для тех кто переезжает с QT3 на QT4
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 22.