7

Python 2.7 (32 ビット) Windows: Python 2.7 のシンプルな GUI 用のテーマ Tkinter ( ttk) のサポートを実験しており、非常に感銘を受けました!! 新しいテーマのサポートが不足しているように見える領域の 1 つは、OS 固有の共通ダイアログがどのようにラップされるかです。

修正: 言い換えると、MessageBoxおよびColorChooser一般的なダイアログには、XP、Vista、および Windows 7 でこれらの一般的なダイアログに通常表示されるテーマ (丸みを帯びた/グラデーション) のボタンに対して、「醜い」見た目の Win 95 スタイルのブロック状のボタンがあります。 3 つのプラットフォームすべてでテストしており、テーマのない同一の結果が得られています)。

注: filedialog 共通ダイアログ ( askopenfilenameaskopenfilenamesasksaveasfilenameaskdirectory) はすべて適切にテーマ化されています。

import tkMessageBox as messagebox
messagebox.showinfo()

import tkColorChooser as colorchooser
color = colorchooser.askcolor( parent=root, title='Customize colors' )

MessageBoxTkinterと一般的なダイアログを OS テーマと互換性があるようにするために何が必要かについてのアイデアはありますかColorChooser(少なくとも Windows XP 以降では)。

4

2 に答える 2

2

あなたの観察は主に正しいです。と であなたが言及していることがわかりmessageboxますcolorchooser。ただし、私のファイルダイアログにはすべて、適切に丸みを帯びたボタンなどが含まれているようです。

メッセージボックスの作成に関する私の推奨事項は、ウィジェットを使用して独自のメッセージボックスを作成し、TopLevel必要なものとさまざまなボタンの適切な動作を定義することです (単にメッセージボックスを使用するよりも少し難しいのは間違いありませんが、本当に新しいスタイルのボタンが必要です。動作します)。

ただし、問題の解決策を一緒にハックできるとは思いませんcolorchooser

おそらく Python 3.1 でこの問題は修正されたのではないかと思いましたが、残念ながら試してみましたが、そうではありませんでした。ユーザーが色を選択する必要がある場合、ボタンは醜くなければならないと思います。

于 2010-10-22T02:20:35.620 に答える
0

ダイアログ ボックスの見栄えを良くするためのオプションは、 を使用してスクリプトを実行可能ファイルにコンパイルすることpyinstallerです。これについては、こちらで詳しく説明しています。

tl;dr、でコンパイルするとpyinstaller、現在実行中の OS のスタイルのダイアログ ボックスを使用できますが、カスタム スタイルは使用できないようです。

于 2016-01-13T20:25:31.070 に答える