from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * import sys import os def resource_path(relative_path): #exe yaparken tek dosya olarak çıkartıcam buda lazım bir fonksiyon base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) return os.path.join(base_path, relative_path) class program(QWidget): NO, PROPERTY = range(2) def __init__(self,parent=None): super().__init__(parent) #title bar▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ self.setWindowFlags(Qt.FramelessWindowHint) self.layout = QVBoxLayout() self.layout.addWidget(titlebar(self)) self.setLayout(self.layout) self.layout.setContentsMargins(0,0,0,0) self.layout.addStretch(-1) self.setMinimumSize(500,250) self.pressing = False #title bar▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ self.move(500,50) self.resize(500,800) self.addarea() self.rankingproperty() def addarea(self): #what is it name? self.name=QLineEdit(self) self.name.setGeometry(20,60,300,30) self.name.setPlaceholderText("İsmi") #this is bitki or hastalık ? #bitki self.bitkiselectbutton=QRadioButton(self) # radiobutton ı oluşturuyoruz self.bitkiselectbutton.setText("Bitki") # "" ın textini belirtiyoruz self.bitkiselectbutton.move(20,100) # "" ın ekrandaki yerini belirtiyoruz self.bitkiselectbutton.toggled.connect(lambda: self.property.setPlaceholderText("Neye İyi Gelir?")) #hastalık self.hastalikselectbuton=QRadioButton(self) # radiobutton ı oluşturuyoruz self.hastalikselectbuton.setText("Hastalık")# "" ın textini belirtiyoruz self.hastalikselectbuton.move(20,120) # "" ın ekrandaki yerini belirtiyoruz self.hastalikselectbuton.toggled.connect(lambda: self.property.setPlaceholderText("Ne İyi Gelir?")) #what's the feature? #özellikleri ne? #property= özellik self.saveproperty=[] #özelliklerin kaydedileceği liste self.property=QLineEdit(self) self.property.setGeometry(20,180,300,30) self.property.setPlaceholderText("Özellikleri...") #add property =özellik ekleme self.addproperty=QPushButton(self) icon=QPixmap(resource_path("database2/add.png")) #butonda olucak iconu seçiyoruz self.addproperty.setIcon(QIcon(icon)) #butona iconu ekliyoruz self.addproperty.setIconSize(QSize(70,70)) #iconun boyutunu ayarlıyoruz self.addproperty.setGeometry(425,141,70,70) self.addproperty.clicked.connect(self.addpropertyfonc) def addpropertyfonc(self): self.saveproperty.append(self.property.text().strip()) self.rankingproperty() #ekledikten sonra listede göstermesi için tekrar çağırıyoruz. def rankingproperty(self): self.tree=QTreeView() self.tree.setGeometry(20,230,300,300) #görünmesi için eklediğim ama çalışmayan bölüm error da vermiyor. self.tree.setRootIsDecorated(False) self.tree.setAlternatingRowColors(True) model = QStandardItemModel(0, 2) model.setHeaderData(self.NO, Qt.Horizontal, "No.") model.setHeaderData(self.PROPERTY, Qt.Horizontal, "Özellikleri") self.tree.setModel(model) indexnumber=0 #treeview e eklerken indexe göre ekleniyor ranknumber=1 #treeview de solda kaç tane özellik eklendi görmek için for property in self.saveproperty: model.insertRow(indexnumber) model.setData(model.index(indexnumber, self.NO), ranknumber) model.setData(model.index(indexnumber, self.PROPERTY), property) indexnumber+=1 ranknumber+=1 print(self.saveproperty) class titlebar(QWidget): # internette title bar için bulduğum kod (ben yazmadım sadece değişkenlerin karşılıklarını değiştirdim) def __init__(self, parent): super(titlebar, self).__init__() self.parent = parent self.layout = QHBoxLayout() self.layout.setContentsMargins(0,0,0,0) self.icon=QLabel() pixmap =QPixmap(resource_path('database2/logo.png')) self.icon.setPixmap(pixmap) self.title = QLabel("Ürün Ekleme") self.title.setObjectName("titlewindow") self.setStyleSheet(open(resource_path("./database2/titlebar.css"),"r").read()) btn_size = 35 self.btn_close = QPushButton() self.btn_close.setObjectName("closewindow") pixmap = QPixmap(resource_path('database2/close.png')) self.btn_close.setIcon(QIcon(pixmap)) self.btn_close.setIconSize(QSize(btn_size,btn_size)) self.btn_close.clicked.connect(self.btn_close_clicked) self.btn_close.setFixedSize(btn_size,btn_size) self.btn_close.setCursor(QCursor(Qt.PointingHandCursor)) self.btn_min = QPushButton() self.btn_min.setObjectName("minwindow") pixmap = QPixmap(resource_path('database2/minimize.png')) self.btn_min.setIcon(QIcon(pixmap)) self.btn_min.setIconSize(QSize(btn_size,btn_size)) self.btn_min.clicked.connect(self.btn_min_clicked) self.btn_min.setFixedSize(btn_size, btn_size) self.btn_min.setCursor(QCursor(Qt.PointingHandCursor)) self.title.setFixedHeight(35) self.layout.addWidget(self.icon) self.layout.addWidget(self.title) self.layout.addWidget(self.btn_min) self.layout.addWidget(self.btn_close) self.setLayout(self.layout) self.start = QPoint(0, 0) self.pressing = False def resizeEvent(self, QResizeEvent): super(titlebar, self).resizeEvent(QResizeEvent) self.title.setFixedWidth(self.parent.width()) def mousePressEvent(self, event): self.start = self.mapToGlobal(event.pos()) self.pressing = True def mouseMoveEvent(self, event): if self.pressing: self.end = self.mapToGlobal(event.pos()) self.movement = self.end-self.start self.parent.setGeometry(self.mapToGlobal(self.movement).x(), self.mapToGlobal(self.movement).y(), self.parent.width(), self.parent.height()) self.start = self.end def mouseReleaseEvent(self, QMouseEvent): self.pressing = False def btn_close_clicked(self): self.parent.close() def btn_max_clicked(self): self.parent.showMaximized() def btn_min_clicked(self): self.parent.showMinimized() if __name__ == '__main__': app = QApplication(sys.argv) win = program() win.show() sys.exit(app.exec_())