designer ile tasarladığım proje pycharmda hiçbir hata vermiyor fakat run a bastıktan sonra açılmıyor nerde hata yapıyorum acaba
Hangi designer?
Konu hakkinda daha fazla bilgi vermeniz lazim, yoksa tahmin yurutmekten baska bir sey yapamayiz.
Qt designer ile tasarladım detay eksikliği için kusura bakma
Qt Designer ile uzantısı .ui olan tasarım dosyası oluşturuyorsunuz.Bunu PyCharm’ın okuyabileceği .py gibi uzantılara çevirmeniz lazımm
işte uzantıyı değiştiriyorum ve pycharmda da kodlar geliyor fakat run a bastığım zaman herhangi bir pencere veya arayüz açılması olmuyor
Uzantıyı nasıl değiştiriyorsunuz? Farklı kaydet ile mi?
uzantıyı powershell ile(python -m PyQt5.uic.pyuic -x dosyaadi.ui -o dosyaadi.py) yazarak değişiyorum
Designer ile üretilen kodlar tek başına kullanılmıyor. QtDesigner ile alakalı bir tutorial’ı takip edin.
Büyük ihtimalle şunu atlıyorsunuz:
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
DovizProgrami = QtWidgets.QWidget()
ui = Ui_DovizProgrami()
ui.setupUi(DovizProgrami)
DovizProgrami.show()
sys.exit(app.exec_())
bu kodları atlıyorsunsuz.
o da var herşey tam görünüyor fakat altta görüldüğü gibi anında program çalıştı diyor fakat bir şey gelmiyor
Dönüştürülen ui dosyasını (.py dosyasını) ve bu dosyayı kullanan diğer .py dosyasının içeriğini atın.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(“Form”)
Form.resize(400, 300)
self.car = QtWidgets.QPushButton(Form)
self.car.setGeometry(QtCore.QRect(50, 160, 75, 23))
self.car.setObjectName(“car”)
self.subway = QtWidgets.QPushButton(Form)
self.subway.setGeometry(QtCore.QRect(170, 160, 75, 23))
self.subway.setObjectName(“subway”)
self.bus = QtWidgets.QPushButton(Form)
self.bus.setGeometry(QtCore.QRect(290, 160, 75, 23))
self.bus.setObjectName(“bus”)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(40, 30, 300, 100))
self.label.setStyleSheet(“image: url(:/image/classic_car.png);”)
self.label.setText("")
self.label.setObjectName(“label”)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.car.setText(_translate("Form", "car"))
self.subway.setText(_translate("Form", "subway"))
self.bus.setText(_translate("Form", "bus"))
import test_rc
if name == “main”:
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
py uzantılı dosyanın içindeki bu bunu sadece deneme amaçlı 3 tane buton koymuştum ama o da açılmıyor işte
Kodlarda hata yok, çalışıyor.
Terminale dikkat edin, main.py
dosyasını koşturuyorsunuz. Sizin ilgilendiğiniz dosya, denemeler.py
PyCharm dışında, sıradan bir dosya gibi denemeler.py
'ı çift tıklayıp çalıştırın.
Not: PyQt5 sadece sanal ortam üzerinde kurulduysa ilgili sanal ortamı aktive edip o dizine giderek dosyayı çalıştırın.
abi bunu yapmak zorunlu değil bu sadece dosya adı main se çalıştırmakta ki bence gereksiz kullanıcıyı kısıtlıyor
Bunu yapmak zorunlu değil ama daha performanslı ve verimli kod yazma alanı oluşturuyor.
performansı nasıl etkilerki
Bunu hiç yapmamışsa diye yazdım. İmport da etmemişse çalışmaz ki
Amaç bu zaten.
Etkilemez.
Dosyaları yeri geldiğinde okumak,hepsini bi anda okumaktan daha performanslı olmaz mı?
Bunun if __name__ == "__main__"
ile ne alakası var anlamadım.