Windows で既定の境界線を持たないアプリケーションを作成する方法を知りたいです。特に、最小化、最大化、閉じるボタンのあるタイトル バー。画面の上か下の狭いスペースを占めるティッカープログラムを書こうと思っているのですが、Pythonで薄いアプリが作れない限りは挑戦しません。用語に関するヘルプは大歓迎です。検索で正しい質問をする方法がわからないのかもしれません。Tkinter にはこのオプションがありますか? ありがとう
3 に答える
ここで私の質問に答えた例を見つけました。overrideredirect(1)
がキー機能です。
私は Tk に精通しており、Tk ソリューションを好むため、この方法が気に入っていますが、別のソリューションについては他の回答を参照してください。
import tkMessageBox
from Tkinter import *
class App():
def __init__(self):
self.root = Tk()
self.root.overrideredirect(1)
self.frame = Frame(self.root, width=320, height=200,
borderwidth=2, relief=RAISED)
self.frame.pack_propagate(False)
self.frame.pack()
self.bQuit = Button(self.frame, text="Quit",
command=self.root.quit)
self.bQuit.pack(pady=20)
self.bHello = Button(self.frame, text="Hello",
command=self.hello)
self.bHello.pack(pady=20)
def hello(self):
tkMessageBox.showinfo("Popup", "Hello!")
app = App()
app.root.mainloop()
独自のキル ボタンまたは終了メソッドを追加するだけです。
Qt/PySideを使用する場合は、次のコードを参照してくださいQtCore.Qt.FramelessWindowHint
。以下のコードは、それが可能であることを証明するだけであり、それほど有用であろうとはしていません。特に、アプリを閉じるには、アプリを強制終了する必要があります。適切な実装では、カスタムの方法でマウス イベントを処理し、ユーザーがアプリケーションを移動して閉じることができるようにします。これを実行するには、PySideをインストールする必要があります。
ハッキングされたコード
import sys
from PySide import QtGui, QtCore
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow(parent=None, flags=QtCore.Qt.FramelessWindowHint)
MainFrame = QtGui.QFrame(MainWindow)
MainWindow.setCentralWidget(MainFrame)
MainFrameLayout = QtGui.QVBoxLayout(MainFrame)
label = QtGui.QLabel('A Label')
MainFrameLayout.addWidget(label)
MainWindow.show()
sys.exit(app.exec_())
QT Designer と Python (PyQT4) を使ってみる
そしてこのコード
from TestUI import Ui_MainWindow
class testQT4(QtGui.QMainWindow):
def __init__(self, parent=None):
super(testQT4, self).__init__(parent,Qt.CustomizeWindowHint)
self.ui = Ui_MainWindow()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = testQT4()
myapp.show()
sys.exit(app.exec_())
TestUI は、プロジェクト ディレクトリに移動する「cmd」を使用して作成された UI ファイルです (cd[スペース][パスはこちら])。
これを入力して
pyuic4 resfile.ui -o TestUI.py
上記はプロジェクトフォルダーにTestUI.pyを作成します
resfile.ui は、QT Designer で作成したファイルです。
お役に立てれば。