Grata
1
Merhabalar,
import sys
from PyQt5.QtCore import QLine
from PyQt5.QtWidgets import QApplication, QDialogButtonBox, QFormLayout, QGridLayout, QLineEdit
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QWidget
def tiklandi():
print("Tıkladı")
def genel():
girisyap = QApplication(sys.argv)
pencere = QWidget()
pencere.setWindowTitle("Giriş yap")
kayitolform = QFormLayout()
kayitolform.addRow("Kullanıcı adı:", QLineEdit())
kayitolform.addRow("Şifre:", QLineEdit())
gg = kayitolform.addRow(QPushButton("Kayıt ol"))
gg.clicked.connect(tiklandi)
pencere.setLayout(kayitolform)
pencere.show()
sys.exit(girisyap.exec_())
genel()
Amacım kayıt sistemi yapmak. Kullanıcı bilgileri girerek kayıt olacak. Fakat
gg.clicked.connect(tiklandi) kısmında hata veriyor.
Nasıl çözebilirim?
Merhaba,
hatayı okursanız gg nin None olduğunu söylüyor.
addRow
fonksiyonu zannettiğinizin aksine herhangi bir değer return etmiyor.
gg = kayitolform.addRow(QPushButton("Kayıt ol"))
gg.clicked.connect(tiklandi)
kayit_butonu = QPushButton("Kayıt Ol")
kayit_butonu.clicked.connect(tiklandi)
kayitolform.addRow(kayit_butonu)
Grata
4
Bir şey daha sorabilir miyim?
import sys
from PyQt5.QtCore import QLine
from PyQt5.QtWidgets import QApplication, QDialogButtonBox, QFormLayout, QGridLayout, QLineEdit
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QWidget
def genel(kadi, sifre):
girisyap = QApplication(sys.argv)
pencere = QWidget()
pencere.setWindowTitle("Giriş yap")
kayitolform = QFormLayout()
kadi = kayitolform.addRow("Kullanıcı adı:", QLineEdit())
sifre = kayitolform.addRow("Şifre:", QLineEdit())
kayitb = QPushButton("Kayıt Ol")
kayitb.clicked.connect(tiklandi)
kayitolform.addRow(kayitb)
pencere.setLayout(kayitolform)
pencere.show()
sys.exit(girisyap.exec_())
def tiklandi():
a = kadi.text()
print("Tıkladı")
genel()
Girilen kullanıcı adını başka bir fonksiyonda çekmek istiyorum fakat değişkeni bulamıyor. Neden olabilir?
Böyle bir yöntem denedim fakat QWidget: Must construct a QApplication before a QWidget
hatası alıyorum. Ve hatayı çözebilmiş değilim.
Denediğim yöntem:
kadi = QLineEdit("Kullanıcı adı:")
sifre = QLineEdit("Şifre:")
def genel():
girisyap = QApplication(sys.argv)
pencere = QWidget()
pencere.setWindowTitle("Giriş yap")
kayitolform = QFormLayout()
kayitolform.addRow(kadi)
kayitolform.addRow(sifre)
Merhaba, class kullanmak isteyebilirsin. class bu iş için çok kullanışlı. global
falan da kullanabilirsin ama global yerine class en mantıklısı
import sys
from PyQt5.QtCore import QLine
from PyQt5.QtWidgets import QApplication, QDialogButtonBox, QFormLayout, QGridLayout, QLineEdit
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle("Giriş Yap")
self.kayit_ol_form = QFormLayout()
self.kullanici_adi = QLineEdit()
self.kayit_ol_form.addRow("Kullanıcı Adı:", self.kullanici_adi)
self.sifre = QLineEdit()
self.kayit_ol_form.addRow("Şifre:", self.sifre)
self.kayit_butonu = QPushButton("Kayit Ol")
self.kayit_butonu.clicked.connect(self.kayit_yap)
self.kayit_ol_form.addRow(self.kayit_butonu)
self.setLayout(self.kayit_ol_form)
def kayit_yap(self):
kullanici_adi = self.kullanici_adi.text()
print(kullanici_adi)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWidget()
window.show()
sys.exit(app.exec_())
edit: değişkenler laçka luçka isimlendirildi, sen daha güzel ismlendirmeler bulabilirsin.
1 Beğeni
Grata
6
Teşekkür ederim destek için.