Witam ponownie.
Czytam i czytam posty i głowa mnie boli.
Próbuję rozgryźć jak w temacie. Wymęczyłem coś takiego. Działa, ale pojawia się jeden dziwny i oczywisty błąd:
import sys
from PyQt5.QtWidgets import *
def f_btn_new():
print('tutaj')
def f_btn_www():
okno_new=QWidget()
okno_new.setGeometry(450, 250, 200, 100)
btn_2=QPushButton('Guzik', parent=okno_new)
btn_2.clicked.connect(f_btn_new)
btn_2.move(20,20)
okno_new.show()
okno_new() # TUTAJ jest błąd
return
prog = QApplication(['Radek'])
okno=QWidget()
okno.setGeometry(100, 200, 500, 190)
btn_1=QPushButton('Nowe okno', parent=okno)
btn_1.clicked.connect(f_btn_www)
btn_1.move(20,20)
okno.show()
sys.exit(prog.exec_())
Błąd:
okno_new()
TypeError: 'QWidget' object is not callable
Ale bez tej linii nie działa, a z nią jest ok.
Co wywołać zamiast niej, aby funkcjonalne było drugie okno. AAA teraz jest. Próbowałem .exec lub exec_ bo gdzieś znalazłem.
Jakieś rady.
I jeszcze proszę o wyjaśninie. QWidget i QWindow. Tu na forum był post i wyjasnienie, że QWidget jest gdy chcemy jakieś własne cuda robić, a powinno się używać QWindow. Próbuję, ale nawet nie jestem wstanie QLabel nanieść. Robię:
okno=QWindow()
okno.setGeometry(100,100,300,100)
tekst=QLabel('Tekst') # , parent=okno) # Ma być, chyba nie
tekst.move(20,20)
Cała reszta jest jak show()
I otwiera się, ale takie niewypełnione, jak "zawieszone", z grafiką ze wszystkim spod. Dziwne.
Pozdrawiam
Głębicki