Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import menu as menu
- from PyQt5.QtWidgets import *
- from PyQt5.QtGui import *
- from PyQt5.QtCore import *
- from modul1 import DateDialog
- class MainWnd(QMainWindow,QObject):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.setWindowTitle("Kolo")
- self.titleDialog1 = ModelessInput(self)
- self.titleDialog1.changed.connect(self.changeTitle)
- self.titleDialog2 = DateDialog(self)
- menu = QMenuBar()
- dialogMenu = menu.addMenu('Dialog')
- self.actionOpen = QAction('Kolor backgroundu', self, checkable = True)
- self.actionOpen.triggered.connect(self.toggleTitleDialog1)
- dialogMenu.addAction(self.actionOpen)
- self.actionOpen2 = QAction('Wielkosc kola', self, checkable=True)
- self.actionOpen2.triggered.connect(self.toggleTitleDialog2)
- dialogMenu.addAction(self.actionOpen2)
- self.setCentralWidget(Example())
- self.setMenuBar(menu)
- self.show()
- def toggleTitleDialog1(self): # funkcja obsługi elementu menu /pokaż – schowaj dialog
- if self.actionOpen.isChecked():
- self.titleDialog1.show()
- self.titleDialog1.text = self.windowTitle()
- else:
- self.setWindowTitle(self.titleDialog1.text)
- self.titleDialog1.hide()
- def toggleTitleDialog2(self): # funkcja obsługi elementu menu /pokaż – schowaj dialog
- if self.actionOpen.isChecked():
- self.titleDialog2.show()
- self.titleDialog2.text = self.windowTitle()
- else:
- self.setWindowTitle(self.titleDialog2.text)
- self.titleDialog2.hide()
- def changeTitle(self, title): # slot obsługi zmiany tytułu
- self.setWindowTitle(title)
- def closeEvent(self, event): # przedef. funkcji zamknięcia – zamykamy dialog
- self.titleDialog.done(0)
- event.accept()
- class ModelessInput(QDialog):
- changed = pyqtSignal(str) # sygnal do zmiany tytułu okna
- @property
- def text(self):
- return str(self.lineEdit.text()) # właśwość text – wpisany tytuł
- @text.setter
- def text(self, newText):
- self.lineEdit.setText(newText)
- def keyPressEvent(self, event): # obsługa Enter/Return -zatwierdzenie
- if event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return:
- self.changed.emit(self.text)
- def closeEvent(self, event): # zablokowanie możliwości zamkniecia
- event.ignore()
- def __init__(self, parent=None, title=""):
- super(ModelessInput, self).__init__(parent)
- mainLayout = QVBoxLayout(self)
- self.lineEdit = QLineEdit(title)
- mainLayout.addWidget(self.lineEdit)
- self.setWindowTitle('Zmiana koloru tła')
- self.resize(350, 100)
- class Example(QWidget):
- def __init__(self):
- super().__init__()
- def zmien(self, newR1, newR2):
- self.R1 = newR1
- self.R2 = newR2
- def paintEvent(self, event):
- self.R1 = 90
- self.R2 = 40
- x = self.size().width()/2
- y = self.size().height()/2
- R = (self.R1 - self.R2)/2
- qp = QPainter()
- qp.begin(self)
- qp.setPen(QPen(Qt.green, 8, Qt.SolidLine))
- qp.drawEllipse(x-R/2, y-R/2, R, R)
- qp.end()
- def main():
- app = QApplication(sys.argv)
- ex = MainWnd()
- sys.exit(app.exec_())
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement