इसलिए अगर मैं QtDesigner में जाता हूं और UI का निर्माण करता हूं, तो इसे एक .ui फ़ाइल के रूप में सहेजा जाएगा। मैं इसे अजगर फ़ाइल के रूप में कैसे बना सकता हूं या अजगर में इसका उपयोग कैसे कर सकता हूं?
इसलिए अगर मैं QtDesigner में जाता हूं और UI का निर्माण करता हूं, तो इसे एक .ui फ़ाइल के रूप में सहेजा जाएगा। मैं इसे अजगर फ़ाइल के रूप में कैसे बना सकता हूं या अजगर में इसका उपयोग कैसे कर सकता हूं?
जवाबों:
अपने कोड में .ui का उपयोग करने का दूसरा तरीका है:
from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget)
...
#somewhere in constructor:
uic.loadUi('MyWidget.ui', self)
दोनों दृष्टिकोण अच्छे हैं। मत भूलो, कि यदि आप माउस और इतने पर Qt संसाधन फ़ाइलों (अत्यंत उपयोगी) का उपयोग करते हैं, तो आपको इसे भी संकलित करना होगा:
pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc
ध्यान दें, जब uic
इंटरफ़ेस संकलित करता है, यह .py फ़ाइल के अंत में 'import images_rc' जोड़ता है, इसलिए आपको इस नाम के साथ फाइल में संसाधनों को संकलित करना होगा, या इसे उत्पन्न कोड में नाम बदलना होगा।
संयोजन मैक्स के जवाब और Shriramana शर्मा की मेलिंग सूची के बाद , मैं एक लोड करने के लिए एक छोटा सा काम कर उदाहरण बनाया mywindow.ui
युक्त फ़ाइल एक QMainWindow
(तो बस क्यूटी डिजाइनर के दशक में एक मुख्य विंडो बनाने का निर्णय ले File-New
संवाद)।
यह वह कोड है जो इसे लोड करता है:
import sys
from PyQt4 import QtGui, uic
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('mywindow.ui', self)
self.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
मुझे यह लेख बहुत मददगार लगा।
http://talk.maemo.org/archive/index.php/t-43663.html
मैं संक्षेप में उस लेख से ली गई .py फ़ाइल को .ui फ़ाइल बनाने और बदलने की क्रियाओं का संक्षेप में वर्णन करूँगा।
फ़ाइल बनाई और बचाई गई है, अब हम प्यूयिक का उपयोग करके इसमें से पायथन कोड उत्पन्न करेंगे!
आशा है कि यह किसी की मदद करता है।
आप uic
निम्न कोड के साथ PyQt5 में भी उपयोग कर सकते हैं ।
from PyQt5 import uic, QtWidgets
import sys
class Ui(QtWidgets.QDialog):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('SomeUi.ui', self)
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
sys.exit(app.exec_())
मेरी राय में क्लीनर रास्ता पहले निर्यात करने के लिए। Aforementioned के रूप में है:
pyuic4 foo.ui > foo.py
और फिर इसे अपने कोड (जैसे main.py
) के अंदर उपयोग करें , जैसे:
from foo import Ui_MyWindow
class MyWindow(QtGui.QDialog):
def __init__(self):
super(MyWindow, self).__init__()
self.ui = Ui_MyWindow()
self.ui.setupUi(self)
# go on setting up your handlers like:
# self.ui.okButton.clicked.connect(function_name)
# etc...
def main():
app = QtGui.QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
यह तरीका अन्य लोगों को क्षमता देता है जो कोड को पढ़ने के लिए क्यूटी-डिजाइनर का उपयोग नहीं करते हैं, और आपके कार्यक्षमता कोड को भी बाहर रखता है foo.py
जिसे डिजाइनर द्वारा अधिलेखित किया जा सकता है। आप बस कक्षा के ui
माध्यम से संदर्भित करते हैं MyWindow
जैसा कि ऊपर देखा गया है।
self.ui.okButton.clicked.connect(self.function_name)
मुझे देता है TypeError: event() takes 1 positional argument but 2 were given
। आपने इसे कैसे ठीक किया?
आप अपनी .ui फ़ाइलों को नीचे दिए गए कमांड का उपयोग करके एक निष्पादन योग्य अजगर फ़ाइल में बदल सकते हैं।
pyuic4 -x form1.ui > form1.py
अब आप सीधे अजगर फ़ाइल को निष्पादित कर सकते हैं
python3(whatever version) form1.py
आप इस फ़ाइल को आयात कर सकते हैं और आप इसका उपयोग कर सकते हैं।
.Py फ़ाइलों को .ui फ़ाइलों को संकलित करने के लिए, मैंने किया:
python pyuic.py form1.ui > form1.py
अट।
एनाकोंडा 3 (सितंबर 2018) और क्यूटी डिजाइनर का उपयोग 5.9.5। क्यूटी डिजाइनर में, अपनी फ़ाइल को यूआई के रूप में सहेजें। एनाकोंडा प्रॉम्प्ट खोलें। अपनी फ़ाइल खोजें: cd C: .... (अपनी फ़ाइल के एक्सेस पथ को कॉपी / पेस्ट करें)। फिर लिखें: pyuic5 -x helloworld.ui -o helloworld.py (helloworld = आपकी फ़ाइल का नाम)। दर्ज। स्पाइडर लॉन्च करें। अपनी फ़ाइल खोलें .py