Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Qt: несколько вопросов новичка  (Прочитано 1601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FluffyMan

  • Автор темы
  • Активист
  • *
  • Сообщений: 276
  • Debian 6
    • Просмотр профиля
Qt: несколько вопросов новичка
« : 13 Март 2012, 13:50:57 »
здравствуйте, недавно начал изучать кьют по книге Макса Шлее (очень, кстати, классная книга в плане понимания) и возникло несколько вопросов (так как в книге в большинстве случаев рассмотрено программирование пользовательского интерфейса "вручную", создавая объекты динамически, а не в дизайнере), отсюда и вопросы:
1. Можно ли работать с классом GraphicsView из дизайнера? то есть меня интересует визуальное размещение на форме, визуальное "запихивание" в сцену объектов и т.д, чтобы эти объекты тут же появлялись в объекте GraphicsView на форме. Как я понял в объекте GraphicsView (который в дизайнере можно выбрать) уже встроена сцена? вобщем, просветите по этому поводу.
2. Возможно ли создать меню в дизайнере, или только "вручную" в коде? я имею в виду кроме как в готовом menuBar в MainWindow.
3. Как поместить виджеты в mainToolBar из дизайнера, то есть визуально? и как к ним обращаться программно?

Оффлайн Maestro79

  • Новичок
  • *
  • Сообщений: 10
  • UbuntuStudio 12.04
    • Просмотр профиля
Re: Qt: несколько вопросов новичка
« Ответ #1 : 17 Март 2012, 03:28:49 »
Дизайнером уместно пользоваться для создания простых окон. А именно - если  набросать интерфейс, соединить SIGNAL/SLOT, BUDDY, изменить порядок обхода элементов и т.д.  можно ТОЛЬКО в Дизайнере то так и делайте. Если же интерфейс более сложен и часть его все равно придется писать в классе то уместнее вообще обойтись без *.ui . Посмотрите примеры - не так уж много форм сделано в Дизайнере.

Оффлайн FluffyMan

  • Автор темы
  • Активист
  • *
  • Сообщений: 276
  • Debian 6
    • Просмотр профиля
Re: Qt: несколько вопросов новичка
« Ответ #2 : 17 Март 2012, 12:55:22 »
обращал внимание, что чаще всего дизайнером не пользуются в примерах.
не подскажете, ответ на третий вопрос? а именно как программно обратиться к виджету в тулбаре

Оффлайн frostspb

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Qt: несколько вопросов новичка
« Ответ #3 : 17 Март 2012, 16:05:38 »
дабы не плодить новых тем, спрошу тут. есть питон и Ubuntu 11.10 пытаюсь выполнить учебный пример Хелло ворлд
окно рисуется. но с иероглифами вместо русских надписей. пдозреваю. что проблема в первой строке. но не знаю на что ее заменить

# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
import sys
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.setWindowTitle("Первая программа на PyQt")
window.resize(300, 70)
label = QtGui.QLabel("<center>Привет, мир!</center>")
btnQuit = QtGui.QPushButton("&Закрыть окно")
vbox = QtGui.QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(btnQuit)
window.setLayout(vbox)
QtCore.QObject.connect(btnQuit, QtCore.SIGNAL("clicked()"),
QtGui.qApp, QtCore.SLOT("quit()"))
window.show()
sys.exit(app.exec_())

На форуме ЗАПРЕЩЕНО
2.6. Задавать в одной теме несвязанные вопросы. Не бойтесь создавать по одной теме на каждый вопрос в соответствующих разделах.

Не стоит забывать об этом и превращать темы в помойку.


--andrew_bye
« Последнее редактирование: 17 Март 2012, 16:56:10 от andrew_bye »

Оффлайн MEXAHOTABOP

  • Активист
  • *
  • Сообщений: 902
    • Просмотр профиля
Re: Qt: несколько вопросов новичка
« Ответ #4 : 17 Март 2012, 16:30:43 »
возможно надо использывать trUtf8()
будет выглядеть как то так
label = QtGui.QLabel(trUtf8("<center>Привет, мир!</center>"))
« Последнее редактирование: 17 Март 2012, 16:36:16 от MEXAHOTABOP »
http://fonline.ru/ заходите

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Qt: несколько вопросов новичка
« Ответ #5 : 17 Март 2012, 18:59:38 »
обращал внимание, что чаще всего дизайнером не пользуются в примерах.
не подскажете, ответ на третий вопрос? а именно как программно обратиться к виджету в тулбаре
потому что туториалы старые и простые, ui файл читать не не Ъ, так как xml, так что без генерации ui_ вы не поймете что было сделано в гуи.

1) нет
2) нет
3) создаем action в нижнем виджете (Actions Editor) и уже action переносим на тулбар
а обращаемся по имени экшена - actionOpen->...

чисто виджет(и его наследников) запхать можно только кодом:
QWidget *w = new QWidget(toolBar);
toolBar->addWidget(w);
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн FluffyMan

  • Автор темы
  • Активист
  • *
  • Сообщений: 276
  • Debian 6
    • Просмотр профиля
Re: Qt: несколько вопросов новичка
« Ответ #6 : 18 Март 2012, 11:33:45 »
обращал внимание, что чаще всего дизайнером не пользуются в примерах.
не подскажете, ответ на третий вопрос? а именно как программно обратиться к виджету в тулбаре
потому что туториалы старые и простые, ui файл читать не не Ъ, так как xml, так что без генерации ui_ вы не поймете что было сделано в гуи.

1) нет
2) нет
3) создаем action в нижнем виджете (Actions Editor) и уже action переносим на тулбар
а обращаемся по имени экшена - actionOpen->...

чисто виджет(и его наследников) запхать можно только кодом:
QWidget *w = new QWidget(toolBar);
toolBar->addWidget(w);

по поводу первого вопроса - зачем же тогда в дизайнере виджет КуГрафикСцен присутствует?

по поводу третьего вопроса: из дизайнера понял. остался вопрос как обратиться к виджету в тулбаре программно (без экшна).
пример:

QPushButton *pBtn = new QPushButton;
toolBar->addWidget(pBtn);

а вот как теперь к этой кнопке в тулбаре обратиться?

или быть может я не понимаю философию тулбара, запихуя туда виджеты, а не экшны?
« Последнее редактирование: 18 Март 2012, 11:37:29 от FluffyMan »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Qt: несколько вопросов новичка
« Ответ #7 : 18 Март 2012, 19:41:04 »
pBtn->...Нет?

Цитировать
зачем же тогда в дизайнере виджет КуГрафикСцен присутствует?
там присутствующий виджет, и что? многих там вообще нет, он для упрощение коспоновки
не нужно туда еще гимп встраивать

в тулбар пихают обычно экшены, но можно и виджеты

PS:
toolBar->widgetForAction()
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн FluffyMan

  • Автор темы
  • Активист
  • *
  • Сообщений: 276
  • Debian 6
    • Просмотр профиля
Re: Qt: несколько вопросов новичка
« Ответ #8 : 18 Март 2012, 21:40:56 »
Цитировать
Код: [Выделить]
pBtn->...
Нет?
елки палки, а я думал чтото вроде такого
toolbar->widgets->pBtn :D

 

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