meta data for this page
  •  

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
pyqt [2021/10/14 12:56] – [Przykładowy skrypt] Paweł Grygorczukpyqt [2021/10/18 11:24] (aktualna) – [Przykładowy skrypt] Paweł Grygorczuk
Linia 12: Linia 12:
 W katalogu Pythona, przykładowo w Windows ''C:\Python\Lib\site-packages\qt6_applications\Qt\bin'' znajduje się aplikacja ''designer.exe'', za pomocą której możemy projektować interfejs graficzny. Najlepiej zrobić sobie do niej skrót. W katalogu Pythona, przykładowo w Windows ''C:\Python\Lib\site-packages\qt6_applications\Qt\bin'' znajduje się aplikacja ''designer.exe'', za pomocą której możemy projektować interfejs graficzny. Najlepiej zrobić sobie do niej skrót.
  
 +Sprawdzenie zainstalowanych bibliotek:
 +
 +<code bash>
 +pip list
 +</code>
 ===== Kompilacja ===== ===== Kompilacja =====
  
Linia 20: Linia 25:
 </code> </code>
  
-Python UI Compiler znajduje się w ''C:\Python\Scripts\pyuic6.exe''.+Python UI Compiler znajduje się w ''C:\Python\Lib\site-packages\PyQt6\pyuic.py''. 
 + 
 +<WRAP center round tip 90%> 
 +Zdarza się, że polecenie ''pyuic6'' nie działa bezpośrednio w konsoli. Wówczas uruchom program z poziomu Pythona, np. (wypisanie wersji): 
 +<code bash> 
 +python -m PyQt6.uic.pyuic -V 
 +</code> 
 +</WRAP> 
 + 
 Jeżeli chcesz móc przetestować sam projekt interfejsu, dodaj opcję ''-x'' do kompilatora. Jeżeli chcesz móc przetestować sam projekt interfejsu, dodaj opcję ''-x'' do kompilatora.
  
Linia 39: Linia 53:
 <code python> <code python>
 import sys import sys
-from hello_ui import Ui_Form+from hello_ui import Ui_Form # Wygenerowany kod
 from PyQt6 import QtWidgets as qtw from PyQt6 import QtWidgets as qtw
 from PyQt6 import QtCore as qtc from PyQt6 import QtCore as qtc
 </code> </code>
  
-Wygenerowny kod ''hello_ui.py'' zawiera klasę ''Ui_Form'', ale klasa ta sama nie stworzy okna. Aby stworzyć okno, musimy zainicjować osobno ''QWidget'' i podać dla obiektu klasy ''Ui_Form'' jako argument metody ''setupUi()''. Inaczej mówiąc nasz wygenerowany kod nie tworzy interfejsu od początku, lecz konfiguruje podany widget, aby wyglądał tak jak chcemy.+Wygenerowny kod ''hello_ui.py'' zawiera klasę ''Ui_Form'', ale klasa ta sama nie stworzy okna. Aby stworzyć okno, musimy zainicjować osobno ''QWidget'' i podać go dla obiektu klasy ''Ui_Form'' jako argument metody ''setupUi()''. Inaczej mówiąc nasz wygenerowany kod nie tworzy interfejsu od początku, lecz konfiguruje podany widget, aby wyglądał tak jak chcemy.
  
 W tym celu możemy stworzyć własną klasę, która dziedziczy po ''QWidget'', dzięki czemu dla ''ui.setupUi()'' będzie można podać ''self''. W tym celu możemy stworzyć własną klasę, która dziedziczy po ''QWidget'', dzięki czemu dla ''ui.setupUi()'' będzie można podać ''self''.
Linia 56: Linia 70:
  self.ui.setupUi(self) # Konfigurujemy widget.  self.ui.setupUi(self) # Konfigurujemy widget.
   
- self.ui.pushButton.clicked.connect(self.do_sth())+ self.ui.pushButton.clicked.connect(self.do_sth)
    
  def do_sth(self):  def do_sth(self):
Linia 65: Linia 79:
  form = MyForm() # Tworzymy okno  form = MyForm() # Tworzymy okno
  form.show()  form.show()
- app.exec_()+ app.exec()
 </code> </code>