Qt designer что это за программа

Qt designer что это за программа

Это раньше нужно было писать на чистом C со вставками на Ассемблере, чтобы программы выполнялись быстро и точно, потребляли как можно меньше оперативной памяти и занимали немного места на диске. Сейчас мощности процессоров, объёмы памяти и другие параметры компьютеров таковы, что можно ради «Hello, world!» запускать виртуальную машину на виртуальной машине внутри виртуальной машины, поднимать там Chrome и писать на JavaScript. Хотя, мне больше Python нравится. Вот на нём мы сейчас и напишем небольшую программу с графическим интерфейсом, которую затем скомпилируем в исполняемый файл (а вы же помните, что Python, так-то, язык интерпретируемый?)

Для остроты ощущений всё будем делать на Windows 10 и компилировать, соответственно, exe-шничек. Но замечу, что всё то же самое можно сделать практически так же в любой другой ОС, поддерживающей Qt и Python. Итак, алгоритм действий.

1. Установите Python 3. На Windows достаточно скачать установочный дистрибутив с официального сайта и запустить его. На момент написания статьи последняя версия Python 3.9.0. Самое важное — не забудьте во время установки выбрать галочку «Add Python to environment variables» или «Add Python 3.9 to PATH» (что, в общем-то, одно и то же и зависит от того, какие настройки при установке вы выбрали — расширенные или по-умолчанию).

QT Designer 1강 QT Designer 소개, QTextEdit, QPushButton, QLabel

2. Теперь запустите командную строку (не обязательно с правами администратора) и введите там следующие команды:

pip3 install pyqt5
pip3 install pyqt5-tools

Так мы установили все необходимые пакеты для связки Qt и Python. Кстати, подразумевается, что Qt у нас уже установлен. Если нет — то установите. Вообще, потребуется только Qt Designer, его можно поставить через онлайн-установщик Qt.

3. Вот теперь откройте Qt Designer (именно Designer! Не Creator!) и создайте в нём нужную форму. Я просто кинул на форму кнопку pushButton и текстовое поле lineEdit. Сохраняем эту форму (Файл — Сохранить как. ) с расширением *.ui в папку с проектом. Ну, пусть будет form.ui.

4. Вернитесь в командную строку и выполните следующую команду:

pyuic5 c:/path/to/form.ui -o c:/path/to/form.py

Так мы преобразовали файл формы в формат, с которым Python будет удобно работать.

5. Настало время написать какой-нибудь код. Создайте в той же папке с проектом, на одном уровне с файлами form.ui и form.py, новый файл, допустим, program.py. Пишем код:

import sys
from PyQt5 import QtWidgets
import form # это наш form.py, созданный из form.ui

class MyApp(QtWidgets.QMainWindow, main.Ui_MainWindow): # а это — основной класс, вся логика программы должна располагаться в нём; что-то вроде MainWindow.cpp
def __init__(self): # ничего особенного, для тех, кто писал в Qt на C++: инициализация, setupUI, вот это всё
super().__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.doit) # соединяем сигнал clicked кнопки pushButton со слотом doit, который должен быть описан в этом же классе

def doit(self): # а вот и слот, который выполняет какую-то работу
self.lineEdit.setText(«text») # например, записывает текст в текстовое поле lineEdit

def main(): # кто помнит main.cpp — это оно
app = QtWidgets.QApplication(sys.argv)
window = MyApp() # наш рабочий класс
window.show()
app.exec_()

if __name__ == ‘__main__’: # ну и запускаем всё это
main()

Вот такая простенькая программа. При нажатии на кнопку будет выводить текст в текстовое поле.

6. Откройте командную строку снова. Нам надо установить инструменты для компиляции:

pip3 install pywin32
pip3 install pyinstaller

Мы же в Windows, поэтому нам надо ещё поставить пакет для взаимодействия питона с Win32 API — отсюда и pywin32. В UNIX этот пакет не понадобится, я думаю 😉

Читайте также:
Arp что за программа

7. Теперь переходим в командной строке в папку с проектом

cd c:/path/to/

8. И. компилируем!
pyinstaller —onefile —icon=icon.ico —noconsole program.py

Вот и всё! Рядом с вашими файлами появится папочка dist, а в ней — заветный exe-шничек. Опции:
—onefile — создаёт один исполняемый файл, в который помещается всё необходимое — библиотеки и прочее. Очень удобно для переносимости exe-шничка между машинами.
—icon=icon.ico — иконка программы. Файл *.ico должен лежать там же, где и все остальные файлы проекта, на одном с ними уровне.
—noconsole — без этой опции при открытии полученного exe-шника у вас будет сначала запускаться консоль, а уже из неё — форма. Некрасиво, поэтому добавим эту опцию. Теперь при клике на иконку программы будет сразу открываться форма.

Вот так всё просто, оказывается. Ну да, размер файла программы у меня получился 35 Мб, а оперативной памяти при запуске она съедает 12 Мб. Но это всё же лучше, чем Electron, который с собой в exe-шнике таскает Chrome и запускает его со всем виртуальным окружением каждый раз при открытии исполняемого файла.

Источник: rxlab.org

Qt designer что это за программа

Библиотека сайта rus-linux.net

Мастер создания приложений

Нажмите Next (Далее), обратите внимание на опцию CVS и на шаблоны заголовков (они вставляются в начало каждого файла с исходным кодом). В последнем окне нажмите Finish (Готово). KDevelop создаст все файлы, необходимые для компиляции проекта. Вы можете использовать закладку File Selector (слева) для выбора файлов. Откройте 3 файла: main.cpp , sigcreate.cpp и sigcreate.h (рис.

2).

Просмотр файлов в KDevelop

Когда мастер создания приложений закончит работу, вы можете убедиться, что все в порядке, скомпилировав приложение. Для этого выберите Build (Сборка) -> Run automake Run configure . В окне Messages (Сообщения) должно появиться следующее:

» Good — your configure finished. Start make now * * *** Success ***

Теперь вы можете выполнить команду Build (Сборка) -> Build Project (или просто нажмите F8). Затем выполните команды Build (Сборка) -> Install (Установить) и Build (Сборка) -> Execute program (Запустить программу) (или F9). Результат показан на рис. 3.

Простое приложение для KDE

Рис. 3: Простое приложение для KDE

Теперь, когда мы создали основу, можно начать разработку приложения.

Если KDevelop не распознает автоматически переменные окружения QTDIR и KDEDIR, определите их значения вручную в диалоге Project (Проект) => Project Options. => Configure Options.

Параметры проекта

Рис. 6: Параметры проекта

Работа с Qt Designer

Qt Designer — это программа для разработки пользовательского интерфейса программы. Она помогает вам расположить на форме элементы управления и создать макет формы, чтобы при изменении ее размеров виджеты располагались должным образом. Рекомендую вам прочитать Руководство по Qt Designer , чтобы узнать все о Qt Designer.

Qt Designer включает в себя редактор кода, но для этой цели мы все-таки будем использовать KDevelop.

Итак, сейчас мы создадим интерфейс приложения, используя Qt Designer. В Qt Designer формы сохраняются с расширением .ui, потому что затем эти файлы будут обработаны программой uic для создания файлов .cpp и .h. KDevelop сделает это за вас, поэтому все, что нам нужно — просто создать форму.

Замечание

Всякий раз, когда вы добавляете или удаляете файлы из проекта (мы добавим файл пользовательского интерфейса с расширением .ui), требуется изменить файл Makefile.am. KDevelop сделает это, но вам нужно будет выполнить команду Build (Сборка) => Run automake New (Файл => Создать) и введите необходимую информацию в появившемся окне диалога. Сначала введите в качестве имени файла sigcreatedlg и выберите тип файла в выпадающем списке. Сейчас нам потребуется создать файл типа Widget (.ui). Обязательно проверьте, отмечен ли флажок «Add to project» (Добавить в проект), иначе файл Makefile.am не будет обновлен.

Создание файла пользовательского интерфейса

Нажмите кнопку OK. Появится диалог Automake manager.

Automake manager

Нажмите кнопку ОК.

Если только что созданный sigcreatedlg.ui не был автоматически открыт в Qt Designer, откройте Automake Manager (закладка в правой части главного окна), щелкните на файле правой кнопкой мыши и выберите Open With (Открыть с помощью), и в появившемся меню выберите пункт Qt Designer.

Читайте также:
Notebook программа что это

Замечание об именах файлов

К имени файла .ui принято добавлять «dlg», чтобы облегчить чтение кода другим людям. sigcreatedlg обозначает, что этот файл — это класс интерфейса. Обычно имена классов KDE начинаются с заглавной буквы K, и затем следует имя, наиболее полно описывающее вашу программу. Если бы это было настоящее приложение для KDE, мне нужно было бы назвать этот класс KSigCreate .

Qt Designer

Окно программы Qt Designer поделено на три части. С левой стороны находится список элементов управления. Справа могут находиться несколько диалогов; я же оставляю только диалог свойств Property Editor (закрыв два остальных). Здесь вы можете настроить внешний вид и поведение виджетов. Можно выбрать размер, цвет виджета и т.д. Посередине находится форма — окно вашего приложения.

Здесь вы и разрабатываете интерфейс программы.

Замечание

После добавления в проект файла sigcreatedlg.ui вам нужно выполнить команду Build (Сборка) => Run Automake http://rus-linux.net/MyLDP/BOOKS/Qt/creating.html» target=»_blank»]rus-linux.net[/mask_link]

Урок #3 – Разработка внутри Qt Designer

За разработку графического дизайна отвечает программа Qt Designer. Она позволяет быстро реализовать графическую составляющую. За урок мы научимся работать с программой и создадим на ее основе программу «Калькулятор».

Видеоурок

Программа Qt Designer

Qt Designer обеспечивает разработчика полноценным графическим редактором. Через него вы можете добавлять виджеты, свойства, а также создавать сигналы (обработчики событий).

Помимо добавления объектов вы можете создавать меню для ваших проектов. Можно управлять статус баром (status bar), меню (menu bar) и toolbar.

Преобразование в «.py»

Qt Designer создает файл с расширением «.ui». Для редактирования такого файла через PyQt 5 его сперва необходимо преобразовать в файл «.py». Этапы преобразования:

  • Установите через терминал pyqt и pyqt-tools:

pip install pyqt5 pip install pyqt5-tools

  • Перейдите в папку, где сохранен файл с расширением «.ui»
  • Выполните команду:

pyuic5 -x file_name.ui -o new_file.py

  • Далее у вас будет Python файл, что можно редактировать через любой текстовый редактор

Источник: itproger.com

Стоит ли использовать Qt Designer? Плюсы и минусы

Вроде удобно использовать Qt Designer, но вот думаю, а стоит ли к нему привыкать. Когда писал перевое приложение, было много трудностей с созданием структуры программы. Эта пространство имен (ui) не давало мне выйти из widget.cpp, создашь например виджет в дизайнере, а как к нему класс прикрутить, чтобы туда уже сигналы и слоты сувать — непонятно. Да и во всех книгах этот Qt Designer не используется.

Но с другой стороны, в Qt Disegner можно сразу легко построить сложный по структуре интерфейс, быстро поменять нужные свойства у виджетов не заглядывая в документацию. Вообщем есть свои плюсы и минусы.

Хочу услышать от вас, где вы пишите интерфейс, когда стоит прибегнуть к Qt Designer, а когда этого делать не рекомендуете, расскажите — в чем плюсы, а в чем минусы.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Плюсы и минусы
Господа, хочется узнать ваше мнение по такому варианту работы с сервером терминалов. Хочу.

Плюсы и минусы C#
Добрый день! Не хочу ни в коем случае развязывать вечную войну идущей между Delphi и С, но.

Плюсы и минусы
В массиве Z(m) найти число чередований знака, то есть число переходов с плюсов на минус или с.

Игродел на C++ плюсы и минусы
Всем добрый день У меня к вам вопрос такой вот я сейчас учу C++ и хотел бы пойти работать за.

1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167

Пользуюсь студией как средой разработки, и дизайнером — для рисования ui-ек, никогда никаких проблем не возникало (по началу только, когда не опытный был) => моё ИМХО — достойная программа и поучиться стоит.

Читайте также:
Cyberlink media suite что это за программа и нужна ли она

Почетный модератор
11287 / 4255 / 435
Регистрация: 12.06.2008
Сообщений: 12,271

Я всегда использую дизайнер. Сразу видно, как окно будет выглядеть. Немного нехорошо бывает только когда надо динамически создавать какие-то элементы. например, сейчас пишу программу, где в зависимости от содержимого базы данных надо создавать QCheckBox’ы. При этом к части элементов обращаюсь через ui, а к этим приходится через класс окна, где я храню указатели на эти чекбоксы.
И в крайнем случае указатели на все элементы всегда можно скопировать в свой класс окна и дальше работать так, как будто дизайнер не используется. но при этом все элементы уже будут расставлены на форме.

В общем, лично на мой взгляд, дизайнер предоставляет много удобств, а минусы несущественны и их легко обойти. А многие книги вообще пишут по Qt3, либо люди, которые привыкли работать без дизайнера.

Регистрация: 07.10.2011
Сообщений: 203
Qt Disegner можно сразу легко построить сложный по структуре интерфейс

ИМХО та не факт. допустим у нас стоит задача что бы можно было двигать внутренний контент как диафильмы, как рабочие столы в дроиде, да еще и хренова туча слоев поверх друг друга, с виджетами меняющими свой внешний вид/размеры, скрывающимися и появляющимися, причем проделывающими это в заведомо меньшем по размеру родителе, что угодно еще.

Добавлено через 3 минуты
Да, поучиться стоит, солидарен

Регистрация: 04.04.2010
Сообщений: 414

Ну тогда вопрос, вот создал я допустим кнопку в дизайнере. Она получается создана от класса QButton, а как сделать, чтобы она была создана от QMyButton, где я определю уже свои сигнали и слоты для этой кнопки. Просто пока, мне приходится сувать все сигналы и слоты в основной класс QWidget

2731 / 1427 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1

на кнопке ПКМ в меню выбираете «Преобразовать в » и указываете свой класс QMyButton и делов то.

Добавлено через 3 минуты
я не понимаю почему многие «брезгуют» дизайнером, считая что описав интерфейс в коде это круто, как по мне то каждому инструменту свое время и место, если интерфейс не сложный и не требует каких-то специфических виджетов то проще набросать в дизайнере чем писать 20-30 строк кода, которого и так будет достаточно.

Регистрация: 04.04.2010
Сообщений: 414
на кнопке ПКМ в меню выбираете «Преобразовать в » и указываете свой класс QMyButton и делов то.

вот откуда это знать простому смертному, спасибо

Добавлено через 29 минут
Еще вопрос:
есть код из книги:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class QCheckBox; class QRadioButton; // ====================================================================== class Buttons : public QGroupBox { Q_OBJECT private: QCheckBox* m_pchk; QRadioButton* m_pradRed; QRadioButton* m_pradGreen; QRadioButton* m_pradBlue; public: Buttons(QWidget* pwgt = 0); public slots: void slotButtonClicked(); };
Buttons.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Buttons::Buttons(QWidget* pwgt/*= 0*/) : QGroupBox(«QGroupBox», pwgt) { resize(100, 150); setCheckable(true); setChecked(true); m_pradRed = new QRadioButton(«); m_pradGreen = new QRadioButton(«); m_pradBlue = new QRadioButton(«); m_pradGreen->setChecked(true); connect(m_pradRed, SIGNAL(clicked()), SLOT(slotButtonClicked())); connect(m_pradGreen, SIGNAL(clicked()), SLOT(slotButtonClicked())); connect(m_pradBlue, SIGNAL(clicked()), SLOT(slotButtonClicked())); m_pchk = new QCheckBox(«); m_pchk->setChecked(true); connect(m_pchk, SIGNAL(clicked()), SLOT(slotButtonClicked())); QPushButton* pcmd = new QPushButton(«); connect(pcmd, SIGNAL(clicked()), qApp, SLOT(quit())); //Layout setup QVBoxLayout* pvbxLayout = new QVBoxLayout; pvbxLayout->addWidget(m_pradRed); pvbxLayout->addWidget(m_pradGreen); pvbxLayout->addWidget(m_pradBlue); pvbxLayout->addWidget(m_pchk); pvbxLayout->addWidget(pcmd); setLayout(pvbxLayout); slotButtonClicked(); }

Вот в конструкторе мы тут создаем кнопки:

1 2 3
m_pradRed = new QRadioButton(«); m_pradGreen = new QRadioButton(«); m_pradBlue = new QRadioButton(«);

но если мы работает в в дизайнере, значит нам надо присвоить просто уже созданные кнопки, допустим так:

1 2 3
m_pradRed = ui->RB1; m_pradGreen = ui->RB2; m_pradBlue = ui->RB3;

но мы ведь это делаем уже в Buttons.cpp, и ui->RB будет «необъявленным индификатором». Что делать принято в данном случае? Просто объявлять глобальный указатель на эти кнопки и объявлять о их существовании через extern в Buttons.cpp ой как нехорошо.

Источник: www.cyberforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru