Arkadaşlar öncelikle herkeze hayırlı çalışmalar diliyorum.
Benim 2 adet mainwindow arayüzüm var;
1- anasayfa(müşteri bilgilerini vs kaydettigim)
2- mailgönderme(sql tabanındaki müşteriyi seçip ilgili kişiye mail attıgım sayfa)
Şimdi benim yapmak istedigim şey 1 sayfamda bir butona tıkladıgımda, 2 sayfamı(mail gönderme) sayfasını açmak istiyorum.
python programlamada acemiyim yardımcı olabilicek arkadaşlar varsa memnun olurum şimdiden teşekkür ederim
####1-sayfamın code bölümü###
#-----------MODÜLDAHİLİ---------#
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import*
from anasayfa_arayüz import*
from hakkında1 import*
#-------------------------------#
#--------PENCERE OLUŞTURMA------#
uygulama=QApplication(sys.argv)
anapen=QMainWindow()
dosya=kayit()
dosya.setupUi(anapen)
anapen.show()
#--------Hakkında------#
hakkında=QDialog()
dosya1=Ui_HAKKINDA()
dosya1.setupUi(hakkında)
#--------BAĞLANTIVE TABLO SQL OLUŞTURMA------#
import sqlite3
global bağlantı
global işlem
bağlantı=sqlite3.connect("arcelik.db")
işlem=bağlantı.cursor()
sorgutable=("CREATE TABLE IF NOT EXISTS ARCELİK( \
Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \
TCno TEXT NOT NULL UNIQUE, \
MüşteriAdı TEXT NOT NULL, \
MüşteriSoyadı TEXT NOT NULL, \
TelNO TEXT NOT NULL, \
TelNO1 TEXT NOT NULL, \
Adres TEXT NOT NULL, \
Ürünbilgisi TEXT NOT NULL, \
ÜrünFiyatı TEXT NOT NULL, \
TeslimTarihi TEXT NOT NULL)")
işlem.execute(sorgutable)
bağlantı.commit()
#--------TABLOYA ATAMA------#
def LİSTELE():
dosya.tableWidget_data .clear()
dosya.tableWidget_data.setHorizontalHeaderLabels(("NO","TC KimlikNo","Müşteri Adı","Müşteri Soyadı", \
"TelNo","TelNo1","Adres",\
"Ürün Bilgisi","Ürün Fiyatı","Teslim Tarihi"))
dosya.tableWidget_data.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
işlem.execute("SELECT * FROM ARCELİK")
for Satırındex,Satırveri in enumerate(işlem):
for Sutunındex,Sutunveri in enumerate(Satırveri):
dosya.tableWidget_data.setItem(Satırındex,Sutunındex,QTableWidgetItem(str(Sutunveri)))
dosya.lineEdit_TC.clear()
dosya.lineEdit_adi.clear()
dosya.lineEdit_soyadi.clear()
dosya.lineEdit_no.clear()
dosya.lineEdit_no1.clear()
dosya.textEdit_adres_bilgisi.clear()
dosya.textEdit_urun_bilgisi.clear()
dosya.lineEdit_fiyat.clear()
LİSTELE()
#------------Müşteri EKLEME FONKSİYONU-----------#
def KAYDET():
try:
tc=dosya.lineEdit_TC.text()
adı=dosya.lineEdit_adi.text()
soyadı=dosya.lineEdit_soyadi.text()
iletişim=dosya.lineEdit_no.text()
iletişim_1=dosya.lineEdit_no1.text()
adres=dosya.textEdit_adres_bilgisi.toPlainText()
urun=dosya.textEdit_urun_bilgisi.toPlainText()
fıyat=dosya.lineEdit_fiyat.text()
tarıh=dosya.calendarWidget_teslim_tarihi.selectedDate().toString(QtCore.Qt.ISODate)
işlem.execute("INSERT INTO ARCELİK(TCno,MüşteriAdı,MüşteriSoyadı,TelNO,TelNO1,Adres,Ürünbilgisi,ÜrünFiyatı,TeslimTarihi)VALUES(?,?,?,?,?,?,?,?,?)",(tc,adı,soyadı,iletişim,iletişim_1,adres,urun,fıyat,tarıh))
bağlantı.commit()
LİSTELE()
dosya.statusbar.showMessage("Araç kaydedildi.",10000)
dosya.lineEdit_TC.clear()
dosya.lineEdit_adi.clear()
dosya.lineEdit_soyadi.clear()
dosya.lineEdit_no.clear()
dosya.lineEdit_no1.clear()
dosya.textEdit_adres_bilgisi.clear()
dosya.textEdit_urun_bilgisi.clear()
dosya.lineEdit_fiyat.clear()
except Exception as hata:
pass
# dosya.statusbar.showMessage("HATA:"+str(hata,10000))
#-----------müşteri silme işlemi---------#
def SIL():
cevap=QMessageBox.question(anapen,"SİL","Seçili Müşteri silinecek onay veriyormusunuz?",QMessageBox.Yes | QMessageBox.No)
try:
if cevap==QMessageBox.Yes:
secili=dosya.tableWidget_data.selectedItems()
silinecek=secili[1].text()
işlem.execute("DELETE FROM ARCELİK WHERE TCno='%s'" %(silinecek))
bağlantı.commit()
LİSTELE()
dosya.statusbar.showMessage("Seçili Müşteri Silindi",1000)
else:
dosya.statusbar.showMessage("Müşteri Silme İşlemi İptal Edildi.",10000)
except Exception as Hata:
pass
#---------TABLE WİDGET VERİ AKTARIMI----------#
def DOLDUR():
try:
secili=dosya.tableWidget_data.selectedItems()
dosya.lineEdit_TC.setText(secili[1].text())
dosya.lineEdit_adi.setText(secili[2].text())
dosya.lineEdit_soyadi.setText(secili[3].text())
dosya.lineEdit_no.setText(secili[4].text())
dosya.lineEdit_no1.setText(secili[5].text())
dosya.textEdit_adres_bilgisi.setText(secili[6].text())
dosya.textEdit_urun_bilgisi.setText(secili[7].text())
dosya.lineEdit_fiyat.setText(secili[8].text())
yıl=int(secili[9].text()[0:4]) #1998.03.11
ay=int(secili[9].text()[5:7])
gün=int(secili[9].text()[8:10])
dosya.calendarWidget_teslim_tarihi.setSelectedDate(QtCore.QDate(yıl,ay,gün))
except Exception as Hata:
pass
#-----------------Müşteri GÜNCELLEME------------#
def GUNCELLE():
cevap=QMessageBox.question(anapen,"GÜNCELLE","Müşteri güncellenecek onay veriyormusunuz?", \
QMessageBox.Yes | QMessageBox.No)
if cevap==QMessageBox.Yes:
try:
secili=dosya.tableWidget_data.selectedItems()
Id=int(secili[0].text())
tc=dosya.lineEdit_TC.text()
adı=dosya.lineEdit_adi.text()
soyadı=dosya.lineEdit_soyadi.text()
iletişim=dosya.lineEdit_no.text()
iletişim_1=dosya.lineEdit_no1.text()
adres=dosya.textEdit_adres_bilgisi.toPlainText()
urun=dosya.textEdit_urun_bilgisi.toPlainText()
fıyat=dosya.lineEdit_fiyat.text()
tarıh=dosya.calendarWidget_teslim_tarihi.selectedDate().toString(QtCore.Qt.ISODate)
işlem.execute("UPDATE ARCELİK SET TCno=?,MüşteriAdı=?,MüşteriSoyadı=?,TelNO=?,TelNO1=?,Adres=?,Ürünbilgisi=?,ÜrünFiyatı=?,TeslimTarihi=? WHERE Id=?",(tc,adı,soyadı,iletişim,iletişim_1,adres,urun,fıyat,tarıh,Id))
LİSTELE()
bağlantı.commit()
dosya.statusbar.showMessage("Seçili Müşteri Güncellendi.",10000)
except Exception as Hata:
dosya.statusbar.showMessage("HATA:"+str(Hata))
else:
dosya.statusbar.showMessage("Güncelleme İptal Edildi.",1000)
def HAKKINDA():
hakkında.show()
#------------Signal-slot button fonksiyonları-----------#
dosya.pushButton_kaydet.clicked.connect(KAYDET)
dosya.pushButton_listele.clicked.connect(LİSTELE)
dosya.pushButton_sil.clicked.connect(SIL)
dosya.tableWidget_data.itemSelectionChanged.connect(DOLDUR)
dosya.pushButton_guncelle.clicked.connect(GUNCELLE)
dosya.hakkinda.triggered.connect(HAKKINDA)
sys.exit(uygulama.exec_())
##1-sayfamın ui-to-py codu(qtdesigner ile tasarladıgım arayüz)###
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'm_kayıt.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class kayit(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1337, 759)
MainWindow.setStyleSheet("")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(950, 40, 371, 421))
self.groupBox.setObjectName("groupBox")
self.layoutWidget = QtWidgets.QWidget(self.groupBox)
self.layoutWidget.setGeometry(QtCore.QRect(30, 20, 331, 381))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout.setContentsMargins(14, 0, 14, 25)
self.verticalLayout.setSpacing(16)
self.verticalLayout.setObjectName("verticalLayout")
self.pushButton_kaydet = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_kaydet.setObjectName("pushButton_kaydet")
self.verticalLayout.addWidget(self.pushButton_kaydet)
self.pushButton_guncelle = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_guncelle.setObjectName("pushButton_guncelle")
self.verticalLayout.addWidget(self.pushButton_guncelle)
self.pushButton_listele = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_listele.setObjectName("pushButton_listele")
self.verticalLayout.addWidget(self.pushButton_listele)
self.pushButton_sil = QtWidgets.QPushButton(self.layoutWidget)
font = QtGui.QFont()
font.setPointSize(8)
self.pushButton_sil.setFont(font)
self.pushButton_sil.setAutoRepeatDelay(300)
self.pushButton_sil.setAutoRepeatInterval(100)
self.pushButton_sil.setObjectName("pushButton_sil")
self.verticalLayout.addWidget(self.pushButton_sil)
self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_2.setGeometry(QtCore.QRect(479, 40, 451, 421))
self.groupBox_2.setObjectName("groupBox_2")
self.formLayoutWidget_3 = QtWidgets.QWidget(self.groupBox_2)
self.formLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 433, 391))
self.formLayoutWidget_3.setObjectName("formLayoutWidget_3")
self.formLayout_3 = QtWidgets.QFormLayout(self.formLayoutWidget_3)
self.formLayout_3.setContentsMargins(8, 23, 13, 13)
self.formLayout_3.setHorizontalSpacing(6)
self.formLayout_3.setVerticalSpacing(20)
self.formLayout_3.setObjectName("formLayout_3")
self.label_7 = QtWidgets.QLabel(self.formLayoutWidget_3)
self.label_7.setObjectName("label_7")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_7)
self.textEdit_urun_bilgisi = QtWidgets.QTextEdit(self.formLayoutWidget_3)
self.textEdit_urun_bilgisi.setObjectName("textEdit_urun_bilgisi")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.textEdit_urun_bilgisi)
self.label_8 = QtWidgets.QLabel(self.formLayoutWidget_3)
self.label_8.setObjectName("label_8")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_8)
self.lineEdit_fiyat = QtWidgets.QLineEdit(self.formLayoutWidget_3)
self.lineEdit_fiyat.setText("")
self.lineEdit_fiyat.setCursorPosition(0)
self.lineEdit_fiyat.setObjectName("lineEdit_fiyat")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_fiyat)
self.label_9 = QtWidgets.QLabel(self.formLayoutWidget_3)
self.label_9.setObjectName("label_9")
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_9)
self.calendarWidget_teslim_tarihi = QtWidgets.QCalendarWidget(self.formLayoutWidget_3)
self.calendarWidget_teslim_tarihi.setStyleSheet("")
self.calendarWidget_teslim_tarihi.setObjectName("calendarWidget_teslim_tarihi")
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.calendarWidget_teslim_tarihi)
self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_3.setGeometry(QtCore.QRect(10, 40, 451, 421))
self.groupBox_3.setObjectName("groupBox_3")
self.formLayoutWidget = QtWidgets.QWidget(self.groupBox_3)
self.formLayoutWidget.setGeometry(QtCore.QRect(10, 20, 421, 391))
self.formLayoutWidget.setObjectName("formLayoutWidget")
self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
self.formLayout.setContentsMargins(4, 26, 16, 11)
self.formLayout.setHorizontalSpacing(2)
self.formLayout.setVerticalSpacing(20)
self.formLayout.setObjectName("formLayout")
self.label = QtWidgets.QLabel(self.formLayoutWidget)
self.label.setObjectName("label")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
self.lineEdit_TC = QtWidgets.QLineEdit(self.formLayoutWidget)
self.lineEdit_TC.setMaxLength(11)
self.lineEdit_TC.setClearButtonEnabled(True)
self.lineEdit_TC.setObjectName("lineEdit_TC")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.lineEdit_TC)
self.label_2 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_2.setObjectName("label_2")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2)
self.lineEdit_adi = QtWidgets.QLineEdit(self.formLayoutWidget)
self.lineEdit_adi.setClearButtonEnabled(True)
self.lineEdit_adi.setObjectName("lineEdit_adi")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_adi)
self.label_3 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_3.setObjectName("label_3")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_3)
self.lineEdit_soyadi = QtWidgets.QLineEdit(self.formLayoutWidget)
self.lineEdit_soyadi.setClearButtonEnabled(True)
self.lineEdit_soyadi.setObjectName("lineEdit_soyadi")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_soyadi)
self.label_4 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_4.setObjectName("label_4")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_4)
self.lineEdit_no = QtWidgets.QLineEdit(self.formLayoutWidget)
self.lineEdit_no.setObjectName("lineEdit_no")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.lineEdit_no)
self.label_5 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_5.setObjectName("label_5")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_5)
self.lineEdit_no1 = QtWidgets.QLineEdit(self.formLayoutWidget)
self.lineEdit_no1.setObjectName("lineEdit_no1")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.lineEdit_no1)
self.label_6 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_6.setObjectName("label_6")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.label_6)
self.textEdit_adres_bilgisi = QtWidgets.QTextEdit(self.formLayoutWidget)
self.textEdit_adres_bilgisi.setObjectName("textEdit_adres_bilgisi")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.textEdit_adres_bilgisi)
self.groupBox_4 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_4.setGeometry(QtCore.QRect(299, 490, 841, 201))
self.groupBox_4.setObjectName("groupBox_4")
self.tableWidget_data = QtWidgets.QTableWidget(self.groupBox_4)
self.tableWidget_data.setGeometry(QtCore.QRect(20, 20, 801, 171))
self.tableWidget_data.setRowCount(100)
self.tableWidget_data.setColumnCount(10)
self.tableWidget_data.setObjectName("tableWidget_data")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1337, 21))
self.menubar.setObjectName("menubar")
self.menuSERV_S_TESL_M = QtWidgets.QMenu(self.menubar)
self.menuSERV_S_TESL_M.setObjectName("menuSERV_S_TESL_M")
self.menuYard_m = QtWidgets.QMenu(self.menubar)
self.menuYard_m.setObjectName("menuYard_m")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.mail_gonder = QtWidgets.QAction(MainWindow)
self.mail_gonder.setObjectName("mail_gonder")
self.hakkinda = QtWidgets.QAction(MainWindow)
self.hakkinda.setObjectName("hakkinda")
self.menuSERV_S_TESL_M.addAction(self.mail_gonder)
self.menuYard_m.addAction(self.hakkinda)
self.menubar.addAction(self.menuSERV_S_TESL_M.menuAction())
self.menubar.addAction(self.menuYard_m.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.groupBox.setTitle(_translate("MainWindow", "İşlemler:"))
self.pushButton_kaydet.setText(_translate("MainWindow", "MÜŞTERİ KAYDET"))
self.pushButton_guncelle.setText(_translate("MainWindow", "MÜŞTERİ GÜNCELLE"))
self.pushButton_listele.setText(_translate("MainWindow", "MÜŞTERİLERİ LİSTELE"))
self.pushButton_sil.setText(_translate("MainWindow", "MÜŞTERİ SİL"))
self.groupBox_2.setTitle(_translate("MainWindow", "Seçilen Ürün Bilgisi:"))
self.label_7.setText(_translate("MainWindow", "Ürün Bilgileri:"))
self.label_8.setText(_translate("MainWindow", "Ürün Toplam Fiyat:"))
self.label_9.setText(_translate("MainWindow", "Teslim Tarihi:"))
self.groupBox_3.setTitle(_translate("MainWindow", "Müşteri Bilgisi:"))
self.label.setText(_translate("MainWindow", "Müşteri Tc:"))
self.label_2.setText(_translate("MainWindow", "Müşteri Adı:"))
self.label_3.setText(_translate("MainWindow", "Müşteri Soyadı:"))
self.label_4.setText(_translate("MainWindow", "İletişim No:"))
self.lineEdit_no.setInputMask(_translate("MainWindow", "(999) 999 99 99"))
self.label_5.setText(_translate("MainWindow", "İletişim No(1):"))
self.lineEdit_no1.setInputMask(_translate("MainWindow", "(999) 999 99 99"))
self.label_6.setText(_translate("MainWindow", "Adres Bilgileri:"))
self.groupBox_4.setTitle(_translate("MainWindow", "Kayıtlı Müşteriler:"))
self.menuSERV_S_TESL_M.setTitle(_translate("MainWindow", "Teslimat"))
self.menuYard_m.setTitle(_translate("MainWindow", "Yardım"))
self.mail_gonder.setText(_translate("MainWindow", "Mail Gönder"))
self.hakkinda.setText(_translate("MainWindow", "Hakkında"))
1- sayfamın arayüzü görüntüsü (kırmızı bölüm eklemek istedigim buton)