2
私は自分のボタンでカスタムQDialogメッセージボックスを作成する方法を知りました。カスタムQDialogが全画面アプリケーションのフォーカスを盗み出し、タスクバーを表示
これまでのところ、私はこのコードを持っていますが、これはかなりうまく動作します。このコードの問題は、フルスクリーンアプリケーションから起動し、そのフォーカスを盗むことです(上部のメインタスクバーがQDialogオブジェクトとともに表示されます)。バックグラウンドでフルスクリーンアプリケーションとシームレスに連携したいので、ボタンをクリックしてこのメッセージボックスを表示すると、トップにタスクバーが表示されません。私はPyQt4とPython 2.7.2でUbuntu 11.10で作業しています。
btnOne = QPushButton("One", self)
btnTwo = QPushButton("Two", self)
btnOne.clicked.connect(self.workForOne)
btnTwo.clicked.connect(self.workForTwo)
msgBox = QMessageBox()
msgBox.setText("<center>This is a custom question!</center>")
msgBox.setWindowTitle("Question")
msgBox.setWindowModality(Qt.ApplicationModal)
msgBox.addButton(btnOne, QMessageBox.ActionRole)
msgBox.addButton(btnTwo, QMessageBox.ActionRole)
msgBox.addButton(QMessageBox.Cancel)
msgBox.exec_()
これを試しましたが、まだUbuntuタスクバーが最上部に表示されています。位置合わせはまた、画面の中心からほぼ中央上部に変化する。親に与えるときに画面の中央に手動で調整する方法はありますか?それとも親の位置合わせを継承しますか? – 12hys
実際、これはUbuntu 11.04でこの問題を修正していますが、なぜこの問題は11.10で引き続き起こります。 – 12hys
gnome2/3/unityの違いかもしれません... – Chris