Форум сайта python.su
Вопрос для знающих и использующих PyQt
Опыт програмирования с Python у меня не большой. Пишу на Py3k
Сейчас читаю книжку Marka Summerfielda про PyQt, так вот, возник вопрос:
Нарисовал я гуи в КуТДизайнере… сохранил как уи. Сконвертировал её в *.ру. Подключил к проекту, добавил действия к кнопкам (Сигналы и слоты) все работает.
Потом попалась статейка, в которой описано, как подключить уи файл к python не конвертируя его:
from PyQt4 import QtCore, QtGui, uic
class MyPrj(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
uiClass, qtBaseClass = uic.loadUiType('designed_ui.ui')
self.ui = uiClass()
self.ui.setupUi(self)
Офлайн
Что значит “не могу”? Что хочешь, что делаешь, как делаешь, что не получается?
hint: dir(self.ui)
Отредактировано (Июль 23, 2009 06:42:43)
Офлайн
Ну предположим в КуТДизайнере была создана форма, на которой есть пушБатон (ObjctName: Btn) и КуЛэйбл (lable). Файл сохранен как УИ.
Сконвертировав вайл в *.ру и затем подключив его к main.py я могу сделать так:
def on_Btn_clicked(self):
self.label.setText("Hello")
Python консоль :)
Traceback (most recent call last):
File “main.py”, line 21, in on_Btn_clicked
self.label.setText(“Hello”)
AttributeError: ‘MyPrj’ object has no attribute ‘label’
Traceback (most recent call last):
File “main.py”, line 21, in on_Btn_clicked
self.label.setText(“Hello”)
AttributeError: ‘MyPrj’ object has no attribute ‘label’
Офлайн
self.ui.label.setText
Офлайн
MDN, поменьше используй дельфятину. Разберись с сигналами и слотами и используй лучше их, чем эти “on_Btn_clicked”…
Так же, внимательно разбери получающуюся при компилированнии уйню, посмотри, как оно устроено и многое встанет на свои места.
Офлайн
hellslade спасибо
“А ларчик просто открывался…” (с) :-) Надо меньше лениться…
2 ZZZ:
Делфи я вобще не знаю :) Никогда на нем не писал!
“on_Btn_clicked” - это из книги Marka Summerfielda про PyQt!
ZZZНе понял! Ты предлогаешь посмотреть на *.ui или на скомпилированый из *.ui py файл? Если ты про уи, то что туда смотреть? ХМЛ файл, с описанием интерфейса и подключенными сигналами и слотами через КуТДизайнер.
Так же, внимательно разбери получающуюся при компилированнии уйню
Офлайн
MDNХм… Я когда впервые это увидел, сразу подумал о том, что уж очень в дельфячем стиле и лучше не использовать. И не использую.
“on_Btn_clicked” - это из книги Marka Summerfielda про PyQt!
MDNЯ про py-файлы.
Не понял!
MDNЕсли в книге рассматривается версия PyQt4 ниже 4.5, то лучше не забивай себе голову и читай сразу официальную доку, так как там кое что поменялось.
Про сигналы и слоты согласен, но я ещё не дочитал книгу
Офлайн
Я думаю, во время выполнения генерится точно такой же код, как и с помощью pyuic, так что можно смотреть вывод pyuic для анализа. А по поводу слотов и сигналов можно почитать главную страницу документации pyqt, они в питоне реализованы проще даже чем в с++.
Офлайн