im totally new when it comes to programming. I want to create a Flashcard Application for Windows. So far i can tell my "programm" works fine, but i cant manage to open a new Window when i click on my widgets. I need to know how i can write the code corectly and specificly - where do i have to add what exactly. Inside the new Window i would like to have a Textfield where i can write some notes, choose if i want to write the Text as "strong", "curved" and stuff like this.
I researched in the docs, tried something and it doesnt work like it should be. I hope someone can help me to solve this "problem".I want to create a new Window when i click on "Decks" and the other buttons, that i have. Else i would like to have a Menu in the top left Corner where i can click on "New Deck" or "Help" or something like this.
Here is my Code
from PyQt5 import QtWidgets, QtGui, QtCore
import sys
class MyWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.initUI()
self.setGeometry(100, 100, 1280, 900)
self.setWindowTitle("Flashcards!")
def initUI(self):
wid = QtWidgets.QWidget(self)
self.setCentralWidget(wid)
self.screenObject = QtWidgets.QDesktopWidget().screenGeometry(0)
self.line = QtWidgets.QFrame(self)
self.line.setGeometry(QtCore.QRect(0, 0, self.screenObject.width(), 2))
self.line.setStyleSheet("border: 1px solid rgb(170, 170, 170)")
self.line_2 = QtWidgets.QFrame(self)
self.line_2.setGeometry(QtCore.QRect(0, 35, self.screenObject.width(), 2))
self.line_2.setStyleSheet("border: 1px solid rgb(170, 170, 170)")
self.topfont = QtGui.QFont()
self.topfont.setBold(True)
self.topfont.setWeight(75)
self.topfont.setPointSize(9)
###########Buttons####################################################
self.deckLabel = QtWidgets.QLabel(self)
self.deckLabel.setText("Decks")
self.deckLabel.setFont(self.topfont)
self.deckLabel.setStyleSheet("QLabel::hover {color: rgb(100, 100, 100)}")
self.deckLabel.mousePressEvent = self.clicked
self.addLabel = QtWidgets.QLabel(self)
self.addLabel.setText("Add")
self.addLabel.setFont(self.topfont)
self.addLabel.setStyleSheet("QLabel::hover {color: rgb(100, 100, 100)}")
self.addLabel.mousePressEvent = self.clicked
self.browseLabel = QtWidgets.QLabel(self)
self.browseLabel.setText("Browse")
self.browseLabel.setFont(self.topfont)
self.browseLabel.setStyleSheet("QLabel::hover {color: rgb(100, 100, 100)}")
self.browseLabel.mousePressEvent = self.clicked
self.statsLabel = QtWidgets.QLabel(self)
self.statsLabel.setText("Stats")
self.statsLabel.setFont(self.topfont)
self.statsLabel.setStyleSheet("QLabel::hover {color: rgb(100, 100, 100)}")
self.statsLabel.mousePressEvent = self.clicked
self.syncLabel = QtWidgets.QLabel(self)
self.syncLabel.setText("Sync")
self.syncLabel.setFont(self.topfont)
self.syncLabel.setStyleSheet("QLabel::hover {color: rgb(100, 100, 100)}")
self.syncLabel.mousePressEvent = self.clicked
self.hbox = QtWidgets.QHBoxLayout()
self.hbox.setSpacing(60)
self.hbox.addStretch()
self.hbox.addWidget(self.deckLabel)
self.hbox.addWidget(self.addLabel)
self.hbox.addWidget(self.browseLabel)
self.hbox.addWidget(self.statsLabel)
self.hbox.addWidget(self.syncLabel)
self.hbox.addStretch()
self.hbox.setAlignment(QtCore.Qt.AlignTop)
wid.setLayout(self.hbox)
def clicked(self, event):
print("clicked!")
app = QtWidgets.QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())