Я начинаю с Qt в Python.Pycharm: Python Qt code code
Я создаю простой из использования Qt Designer.
Что мне нужно - после нажатия пользователя на кнопку, приложение копирование текста с правки этикетки.
У меня есть файл example.ui
из Qt Designer:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>308</width>
<height>143</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>121</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Enter name</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>100</x>
<y>20</y>
<width>113</width>
<height>27</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>80</x>
<y>60</y>
<width>85</width>
<height>27</height>
</rect>
</property>
<property name="text">
<string>Display</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<width>261</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
Как я могу использовать это в моем коде Python?
я изменить код из некоторого урока, и она работает:
import sys
from PyQt4 import QtCore, QtGui, uic
form_class = uic.loadUiType("example.ui")[0]
class MyWindowClass(QtGui.QMainWindow, form_class):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.pushButton_clicked)
def pushButton_clicked(self):
input = self.lineEdit.text()
self.label_2.setText(input)
app = QtGui.QApplication(sys.argv)
myWindow = MyWindowClass(None)
myWindow.show()
app.exec_()
Но код завершения не работает! Так что непригодно для меня :-(
Я использую JetBrains PyCharm.
Что такое правильный способ использовать Qt выход дизайнера в питоне кода с рабочим кодом конкуренции в IDE?
Я нахожусь также используя Pycharm для разработки Python & PyQT, он отлично работает. Когда вы имеете в виду автозаполнение, не работает, можете ли вы дать некоторые подробности? Ошибка автоматического завершения модуля PyQt или сбоя части пользовательского интерфейса? –
Хорошо, я понял. Вы не должны ожидать автоматического завершения при использовании «loadUiType», поскольку «loadUiType» происходит во время выполнения, но автозаполнение зависит от статического анализа, поэтому правильный способ - использовать «pyuic» для создания файлов пользовательского интерфейса в файл .py , то в вашем проекте, импортировать его и использовать его, тогда автозаполнение будет работать –
Пример: Я хочу использовать * QLabel * с ** name = "label_2" **. В Pycharm я начинаю писать «labe» и нажимаю ctrl + space и получаю * никаких предложений * https://dl.dropboxusercontent.com/u/6943408/pyqt_completion_err.png – martin