0
私は2つのボタンを持つpyqtウィンドウを呼び出さなければならないメインクラスにポイントがあり、それらのボタンはグローバル変数の値を "IN "または" OUT "。しかし、ボタンを押して値を変更すると、そのウィンドウを終了できません。私が最初に機能し、あなたに私のGUIクラスのコードを示して二つのボタンのコードを見て、IN/OUTしてみましょう:pyqtクラスの終了関数
class Window(QtGui.QMainWindow):
def __init__(self):
self.window_exec = None
self.window_about = None
self.window_help = None
super(Window, self).__init__()
self.setGeometry(0, 0, 500, 400)
self.setWindowTitle('Court Selection')
self.setStyleSheet("background-color:#003333")
#palette = QtGui.QPalette()
#palette.setBrush(QtGui.QPalette.Background,QtGui.QBrush(QtGui.QPixmap("pic1.jpg")))
#self.setPalette(palette)
self.center()
self.default_layout()
self.show()
# Positioning window in the center
def center(self):
frameGm = self.frameGeometry()
screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos())
centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center()
frameGm.moveCenter(centerPoint)
self.move(frameGm.topLeft())
def default_layout(self):
# ----------- Main label -----------
lbl = QtGui.QLabel("Please Select the Verdict", self)
lbl.move(100, 70)
lbl.setStyleSheet('font-size:20pt;color:white')
lbl.resize(lbl.sizeHint())
# ----------- IN Button -----------
btn = QtGui.QPushButton("IN", self)
btn.clicked.connect(self.IN)
btn.setStyleSheet('font-size:12pt;background-color:white;border-radius:5px;')
btn.resize(QtCore.QSize(100, 50))
btn.move(200, 170)
# ----------- OUT Button -----------
btn = QtGui.QPushButton("OUT", self)
btn.clicked.connect(self.OUT)
btn.setStyleSheet('font-size:12pt;background-color:white;border-radius:5px;')
btn.resize(QtCore.QSize(100, 50))
btn.move(200, 250)
def IN(self):
global verdict
verdict='IN'
self.exit()
def OUT(self):
global verdict
verdict='OUT'
self.exit()
今私は私のメインクラスで、同じファイルと別のクラスから、それを呼び出しています
しかし、「img = Image.open(court)」のIN/OUTウィンドウは終了せず、この行は実行されません。だから問題は、変数を変更し、ウィンドウを終了し、ウィンドウが呼び出されたクラスに戻るようにボタンを動作させることです。ありがとう
(... OUT用と同じ)
それはウィンドウを閉じましたが、 ]ダイアログ=ウィンドウ() ダイアログ後のコード.exec_() ' は動作していません。これは、guiクラスのウィンドウを閉じた後、メインクラスの次の行に戻ったことがないようです –
それは別の問題です。 * PyQt Modal Dialog *を検索する必要があります。あなたはhttp://stackoverflow.com/q/24697347/3545273またはhttp://stackoverflow.com/q/18196799/3545273を読むことができます。後者は、サブウィンドウから情報を取り出す方法を説明しています。 –