(PY) Biblioteka PyQt 5 (Dialogs)*
Spis treści
Pokaż
Biblioteka PyQt 5 (Dialogs)
Wbudowane okna dialogowe
- QMessageBox.warning(self, „Nazwa okna dialogowego„, „Treść dialogu„) – Tworzy a następnie wywołuje wbudowane okno dialogowe. PyQt udostępnia następujące wbudowane okna dialogowe:
- about, critical, information, question, warning.
Przykładowy kod
import sys
from PyQt5.QtWidgets import (
QApplication, QWidget,
QMainWindow, QMessageBox,
QPushButton, QVBoxLayout)
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
# Dodaje nazwę okna:
self.setWindowTitle("RKKR")
# Określa wielkość okna aplikacji (Zmiana wielkości okna jest możliwa):
self.resize(300,100)
myButton = QPushButton("Press Me!")
myButton.clicked.connect(self._clicked)
myLayout = QVBoxLayout(self)
myLayout.addWidget(myButton)
myWidget = QWidget()
myWidget.setLayout(myLayout)
self.setCentralWidget(myWidget)
def _clicked(self):
# Wbudowane okna dialogowe:
myButton = QMessageBox.warning(self, "Nazwa okna dialogowego", "Treść dialogu")
# Wyświetlanie tekstu po wciśnięciu przycisku Ok:
if myButton == QMessageBox.Ok:
print("Ok")
def main():
application = QApplication(sys.argv)
window = MainWindow()
window.show()
application.exec_()
if __name__ == "__main__":
main()
Podstawowe okna dialogowe
- Dialog.setWindowTitle(String) – Określa nazwę okna dialogowego.
- Dialog.setText(String) – Określa zawartość okna dialogowego (Wiadomość jaka będzie wyświetlana).
- Dialog.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) – Określa przyciski jakie będą wyświetlane pod wiadomością okna dialogowego. Ilość przycisków można zmieniać dodając je po znaku „|”. Biblioteka PyQt udostępnia następujące rodzaje wbudowanych przycisków:
- Ok, Open, Save, Cancel, Close, Discard, Apply, Reset, RestoreDefaults, Help, SaveAll, Yes, YesToAll, No, NoToAll, Abort, Retry, Ignore, NoButton.
- Dialog.setIcon(QMessageBox.Information) – Określa ikonę przypisaną do okna dialogowego. Biblioteka PyQt udostępnia następujące rodzaje ikon wbudowanych:
- NoIcon, Question, Information, Warning, Critical.
Przykładowy kod
import sys
from PyQt5.QtWidgets import (
QApplication, QWidget,
QMainWindow, QMessageBox,
QPushButton, QVBoxLayout)
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
# Dodaje nazwę okna:
self.setWindowTitle("RKKR")
# Określa wielkość okna aplikacji (Zmiana wielkości okna jest możliwa):
self.resize(300,100)
myButton = QPushButton("Press Me!")
myButton.clicked.connect(self._clicked)
myLayout = QVBoxLayout(self)
myLayout.addWidget(myButton)
myWidget = QWidget()
myWidget.setLayout(myLayout)
self.setCentralWidget(myWidget)
def _clicked(self, data):
print("RKKR", data)
# Wywołuje domyślne okno dialogowe:
myMessage = QMessageBox(self)
# Określa nazwę okna dialogowego:
myMessage.setWindowTitle("Uwaga!")
# Określa wiadomość zawartą w oknie dialogowym:
myMessage.setText("Podany adres IP jest nieosiągalny!")
# Przypisuje wskazane przyciski Button do okna dialogowego:
myMessage.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
# Przypisuje ikone do okna dialogowego:
myMessage.setIcon(QMessageBox.Information)
# Obsługa przycisków:
myButton = myMessage.exec_()
# Wyświetlanie tekstu po wciśnięciu przycisku Ok:
if myButton == QMessageBox.Ok:
print("Ok")
# Wyświetlanie tekstu po wciśnięciu przycisku Cancel:
elif myButton == QMessageBox.Cancel:
print("Cancel")
def main():
application = QApplication(sys.argv)
window = MainWindow()
window.show()
application.exec_()
if __name__ == "__main__":
main()
Własne okna dialogowe
- DialogButton.accepted.connect(Function) – Wskazana akcja zostanie aktywowana po naciśnięciu prze użytkownika przycisku button, z przypisaną rolą AcceptRole bądź YesRole.
- DialogButton.rejected.connect(Function) – Wskazana akcja zostanie aktywowana po naciśnięciu prze użytkownika przycisku button, z przypisaną rolą RejectRole bądź NoRole.
- DialogButton.clicked.connect(Function) – Wskazana akcja zostanie aktywowana po naciśnięciu prze użytkownika jakiegokolwiek przycisku button.
Przykładowy kod
import sys
from PyQt5.QtWidgets import (
QApplication, QDialog, QDialogButtonBox, QLabel,
QMainWindow, QWidget,
QPushButton, QVBoxLayout)
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
# Dodaje nazwę okna:
self.setWindowTitle("RKKR")
# Określa wielkość okna aplikacji (Zmiana wielkości okna jest możliwa):
self.resize(300,100)
myButton = QPushButton("Press Me!")
myButton.clicked.connect(self._clicked)
myLayout = QVBoxLayout(self)
myLayout.addWidget(myButton)
myWidget = QWidget()
myWidget.setLayout(myLayout)
self.setCentralWidget(myWidget)
def _clicked(self):
# Wywołanie nowego okna dialogowego:
myMessage = MyDialog()
myMessage.exec_()
class MyDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
# Dodaje nazwę nowego okna dialogowego:
self.setWindowTitle("My own dialog!")
# Definiuje wykorzystywane przyciski Button:
Buttons = QDialogButtonBox.Ok | QDialogButtonBox.Cancel
# Przypisuje wskazane przyciski Button do okna dialogowego:
buttonBox = QDialogButtonBox(Buttons)
# Dodaje akcje do przycisków button:
buttonBox.accepted.connect(self._accepted)
buttonBox.rejected.connect(self._rejected)
# Tworzy nowy layout:
self.myLayout = QVBoxLayout()
dialogMessage = QLabel("Coś poszło nie tak, dobrze?")
self.myLayout.addWidget(dialogMessage)
self.myLayout.addWidget(buttonBox)
self.setLayout(self.myLayout)
def _accepted(self):
print("Accepted")
self.close()
def _rejected(self):
print("Rejected")
self.close()
def main():
application = QApplication(sys.argv)
window = MainWindow()
window.show()
application.exec_()
if __name__ == "__main__":
main()
Pozostałe tematy związane z bibliotekami / modułami Python
Podstawowe
- Moduł Random
- Moduł Time
- Moduł Datetime
- Moduł Threading Concurrent.futures
- Moduł Multiprocessing
- Moduł CSV
- Moduł Json
- Moduł Jinja2
- Moduł Xlrd
- Moduł os
- Moduł re (Regular expression)
- Moduł TextFSM
- Moduł Click
- Moduł HashLib
- Moduł Sorted
- Biblioteka SimpleCrypt
- Biblioteka Requests
Rozszerzone
SQL
- Biblioteka sqlite3 (Wstęp)
- Biblioteka psycopg2 (Wstęp)
- SQL Database
- SQL Table
- SQL Insert
- SQL Select
- SQL Update
- SQL Delete
PyQt 5
- Biblioteka PyQt 5 (Main window)
- Biblioteka PyQt 5 (Signals)
- Biblioteka PyQt 5 (Widgets)
- Biblioteka PyQt 5 (Actions)
- Biblioteka PyQt 5 (Dialogs)
- Biblioteka PyQt 5 (Windows)
Automatyzacja
- Moduł IPAddress
- Biblioteka TelnetLib
- Biblioteka Netmiko (Podstawy)
- Biblioteka Netmiko (Rozwinięcie)
- Biblioteka Netmiko (Przykłady)
- Biblioteka NAPALM
- Biblioteka Ncclient podstawy (Netconf)
- Biblioteka Ncclient przykłady (Netconf)
- Biblioteka Requests podstawy (Restconf)
- Biblioteka Requests przykłady (Restconf)