menes
Nisan 12, 2020, 2:53ös
1
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QDialog
class Pencere(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.gorsel()
def gorsel(self):
self.buton=QtWidgets.QPushButton("tıkla")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.buton)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.buton.clicked.connect(self.giris)
self.show()
def giris(self):
pencere2=Pencere2(self)
self.Pencere2.show()
class Pencere2(QDialog):
def __init__(self,parent):
super().__init__(parent)
self.gorsel()
def gorsel(self):
self.yazi=QtWidgets.QLabel("pencere açıldı")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.yazi)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.setWindowTitle("açıldı mı")
self.show()
app = QtWidgets.QApplication(sys.argv)
pencere = Pencere()
sys.exit(app.exec_())
menes
Nisan 12, 2020, 2:54ös
2
arkadaşlar nasıl ikinci pencere açabilrim yani butona tıkladığım zaman ikinci pencerenin karşımda sapasağlam durmasını istiyorum
Kodunuzu buraya göre atın lütfen:
Merhaba arkadaşlar.
Çoğu gönderide kodların düzgün bir şekilde görünmediğine dikkat ettim. Bu sebeple bunun nasıl yapılabileceğini burada paylaşmak istedim.
Kullandığımız forumun gönderi yazma sözdiziminde(Markdown’ın biraz gelişmiş hali) kodlar genelde iki şekilde yazılıyor. Bunlardan ilki 4 satır girintileme ile yazmak. Bu basit bir yol. Ancak burada birkaç sorun var. Birincisi her satırın başına ayrı ayrı 4 satır koymanız gerekiyor. İkinci sorun ise bu şekilde kodu biçimlendirdiğinizde kod …
Niçin aynı sorun ikinci bir konu açıyorsunuz?
import sys
import sqlite3
from PyQt5 import QtWidgets
class Pencere(QtWidgets.QWidget):
def init(self):
super().__init__()
self.baglanti_olustur()
self.gorsel()
def baglanti_olustur(self):
self.baglanti=sqlite3.connect("database.db")
self.cursor=self.baglanti.cursor()
self.cursor.execute("CREATE TABLE IF NOT EXISTS üyeler (eposta TEXT,parola TEXT,ad TEXT,soyad TEXT,meslek TEXT,yaş TEXT,görevler TEXT)")
self.baglanti.commit()
def giris2(self):
epo…
menes
Nisan 12, 2020, 2:58ös
4
ilkinde veritaban kullandım ve veritabanın kod kullanmadan gidip kendim kullanıcı oluşturdum böylelikle kodu denemek isteyen bir kişi benim karşılaştığım sorunla karşılaşmayacaktı o yüzden daha denenebilr bir örnek atmak istedim
1 Beğeni
Tamam, sorun aynı olduğu için bu kodu oraya atabilirdiniz. Dediğim gibi kodun görünümünü düzeltirseniz yardım etmeye çalışabilirim.
menes
Nisan 12, 2020, 3:05ös
6
import sys
from PyQt5 import QtWidgets
class Pencere(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.gorsel()
def gorsel(self):
self.buton=QtWidgets.QPushButton("tıkla")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.buton)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.buton.clicked.connect(self.giris)
self.show()
def giris(self):
pencere2=Pencere2()
pencere.show()
class Pencere2(QtWidgets.QWidget):
def __init__(self,parent):
super().__init__(parent)
self.gorsel()
def gorsel(self):
self.yazi=QtWidgets.QLabel("pencere açıldı")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.yazi)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.setWindowTitle("açıldı mı")
self.show()
app = QtWidgets.QApplication(sys.argv)
pencere = Pencere()
sys.exit(app.exec_())
Geliştirme ortamı olarak IDLE mı kullanıyorsunuz?
menes
Nisan 12, 2020, 3:15ös
8
hayır pycharm kullanıyorum
menes:
yani evet yanlış anladım
IDE ile IDLE farklı şeyler.
Bir hata alıyor musunuz programı çalıştırdığınızda?
menes
Nisan 12, 2020, 3:18ös
11
Process finished with exit code -1073740791 (0xC0000409) böyle bir yazı beliriyor
menes
Nisan 12, 2020, 3:18ös
12
ikinci pencerem açılmıyor sonuç olarak
menes
Nisan 12, 2020, 3:20ös
13
import sys
from PyQt5 import QtWidgets
class Pencere(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.gorsel()
def gorsel(self):
self.buton=QtWidgets.QPushButton("tıkla")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.buton)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.buton.clicked.connect(self.giris)
self.show()
def giris(self):
pencere2=Pencere2()
pencere.show()
class Pencere2(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.gorsel()
def gorsel(self):
self.yazi=QtWidgets.QLabel("pencere açıldı")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.yazi)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.setWindowTitle("açıldı mı")
self.show()
app = QtWidgets.QApplication(sys.argv)
pencere = Pencere()
sys.exit(app.exec_())
menes
Nisan 12, 2020, 3:21ös
14
ilkinde ufak bir hata vardı onu silidm ve tekrar attım şu anda ikinci pencerem direkt açılıp kapanıyor
açık tutamıyorum
Tamam. Hata almıyorsunuz yani? Bundan sonra PyQt uygulamalarınızı konsoldan çalıştırın. Orada hata gözüküyor.
menes
Nisan 12, 2020, 3:23ös
16
konsoldan derken hocam biraz daha açık olabilr misnz ? PyQt5 üxerinden mi yani
Neyse, kodunuzda bir kaç problem vardı. Gerekli parametreleri vermiyordunuz. Onu hallettim. Sonra dediğiniz gibi pencere açılıp kapanıyordu, bunun sebebi garbage collector tarafından silinmesi, çünkü fonksiyon bitince pencereye işaret eden bir değişken kalmıyor. Pencereleri bir listede toplamanız lazım.
import sys
from PyQt5 import QtWidgets
class Pencere(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.pencereler = []
self.gorsel()
def gorsel(self):
self.buton=QtWidgets.QPushButton("tıkla")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.buton)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.buton.clicked.connect(self.giris)
self.show()
def giris(self):
p=Pencere2()
self.pencereler.append(p)
class Pencere2(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.gorsel()
def gorsel(self):
self.yazi=QtWidgets.QLabel("pencere açıldı")
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.yazi)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addStretch()
v_box.addLayout(h_box)
v_box.addStretch()
self.setLayout(v_box)
self.setWindowTitle("açıldı mı")
self.show()
app = QtWidgets.QApplication(sys.argv)
pencere = Pencere()
sys.exit(app.exec_())
1 Beğeni