8

Windows で既定の境界線を持たないアプリケーションを作成する方法を知りたいです。特に、最小化、最大化、閉じるボタンのあるタイトル バー。画面の上か下の狭いスペースを占めるティッカープログラムを書こうと思っているのですが、Pythonで薄いアプリが作れない限りは挑戦しません。用語に関するヘルプは大歓迎です。検索で正しい質問をする方法がわからないのかもしれません。Tkinter にはこのオプションがありますか? ありがとう

4

3 に答える 3

11

ここで私の質問に答えた例を見つけました。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()

独自のキル ボタンまたは終了メソッドを追加するだけです。

于 2012-02-23T05:28:18.763 に答える
8

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_())
于 2012-02-21T04:07:50.143 に答える
2

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 で作成したファイルです。

お役に立てれば。

于 2012-02-21T04:05:53.127 に答える