定義済みのダイアログ
QInputDialog
QInputDialogは、ユーザーから単一の値を取得するためのシンプルなダイアログを提供します。 値には、文字列、数値、またはリストのアイテムを指定できます。
#!/usr/bin/python
# inputdialog.py
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class InputDialog ( QtGui. QWidget ) :
def __init__ ( self , parent= None ) :
QtGui. QWidget . __init__ ( self , parent )
self . setGeometry ( 300 , 300 , 350 , 80 )
self . setWindowTitle ( 'InputDialog' )
self . button = QtGui. QPushButton ( 'Dialog' , self )
self . button . setFocusPolicy ( QtCore. Qt . NoFocus )
self . button . move ( 20 , 20 )
self . connect ( self . button , QtCore. SIGNAL ( 'clicked()' ) , self . showDialog )
self . setFocus ( )
self . label = QtGui. QLineEdit ( self )
self . label . move ( 130 , 22 )
def showDialog ( self ) :
text, ok = QtGui. QInputDialog . getText ( self , 'Input Dialog' , 'Enter your name:' )
if ok:
self . label . setText ( unicode ( text ) )
app = QtGui. QApplication ( sys . argv )
icon = InputDialog ( )
icon. show ( )
app. exec_ ( )
ボタンと入力行はフォーム上にあります。 ボタンをクリックすると、入力ダイアログが開き、テキスト値が取得されます。 入力したテキストは、入力行に表示されます。
text, ok = QtGui. QInputDialog . getText ( self , 'Input Dialog' , 'Enter your name:' )
この行は入力ダイアログを表示します。 1行目はダイアログのタイトル、2行目はメッセージテキストです。 ダイアログは、入力されたテキストと論理値を返します。 [OK]をクリックすると、ブール値はtrueになり、そうでない場合はfalseになります。

QColorDialog
QColorDialogは、色を選択するためのダイアログを提供します。
#!/usr/bin/python
# colordialog.py
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class ColorDialog ( QtGui. QWidget ) :
def __init__ ( self , parent= None ) :
QtGui. QWidget . __init__ ( self , parent )
color = QtGui. QColor ( 0 , 0 , 0 )
self . setGeometry ( 300 , 300 , 250 , 180 )
self . setWindowTitle ( 'ColorDialog' )
self . button = QtGui. QPushButton ( 'Dialog' , self )
self . button . setFocusPolicy ( QtCore. Qt . NoFocus )
self . button . move ( 20 , 20 )
self . connect ( self . button , QtCore. SIGNAL ( 'clicked()' ) , self . showDialog )
self . setFocus ( )
self . widget = QtGui. QWidget ( self )
self . widget . setStyleSheet ( "QWidget { background-color: %s }" % color. name ( ) )
self . widget . setGeometry ( 130 , 22 , 100 , 100 )
def showDialog ( self ) :
color = QtGui. QColorDialog . getColor ( )
self . widget . setStyleSheet ( "QWidget { background-color: %s }" % color. name ( ) )
app = QtGui. QApplication ( sys . argv )
cd = ColorDialog ( )
cd . show ( )
app. exec_ ( )
この例では、ボタン( QPushButton )とQWidgetがフォーム上にあります。 ウィジェットの背景は黒く塗りつぶされています。 QColorDialogを使用して、背景を指定した色に変更できます。
color = QtGui. QColorDialog . getColor ( )
この行はQColorDialogを開きます 。
self . widget . setStyleSheet ( "QWidget { background-color: %s }" % color. name ( ) )
スタイルシートを使用して背景色を変更します。

QFontDialog
QFontDialogは、フォントを選択するためのダイアログを提供します。
#!/usr/bin/python
# fontdialog.py
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class FontDialog ( QtGui. QWidget ) :
def __init__ ( self , parent= None ) :
QtGui. QWidget . __init__ ( self , parent )
hbox = QtGui. QHBoxLayout ( )
self . setGeometry ( 300 , 300 , 250 , 110 )
self . setWindowTitle ( 'FontDialog' )
button = QtGui. QPushButton ( 'Dialog' , self )
button. setFocusPolicy ( QtCore. Qt . NoFocus )
button. move ( 20 , 20 )
hbox. addWidget ( button )
self . connect ( button, QtCore. SIGNAL ( 'clicked()' ) , self . showDialog )
self . label = QtGui. QLabel ( 'Knowledge only matters' , self )
self . label . move ( 130 , 20 )
hbox. addWidget ( self . label , 1 )
self . setLayout ( hbox )
def showDialog ( self ) :
font, ok = QtGui. QFontDialog . getFont ( )
if ok:
self . label . setFont ( font )
app = QtGui. QApplication ( sys . argv )
cd = FontDialog ( )
cd . show ( )
app. exec_ ( )
この例では、 QPushButtonとQLabelをフォームに配置しました。 QFontDialogの助けを借りて、 QLabelのフォントを変更しました 。
hbox. addWidget ( self . label , 1 )
サイズ変更可能なQLabelを作成しました 。 これは、さまざまなフォントを使用するとテキストが大きくなり、碑文が完全に表示されない可能性があるためです。
font, ok = QtGui. QFontDialog . getFont ( )
ここで、フォント選択ダイアログを開きます。
if ok:
self . label . setFont ( font )
[OK]ボタンをクリックすると、 QLabelフォントが変更されます。

QFileDialog
QFileDialogは、ユーザーがファイルまたはフォルダーを選択できるダイアログです。 ファイルは、保存とオープンの両方に指定できます。
#!/usr/bin/python
# openfiledialog.py
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class OpenFile ( QtGui. QMainWindow ) :
def __init__ ( self , parent= None ) :
QtGui. QMainWindow . __init__ ( self , parent )
self . setGeometry ( 300 , 300 , 350 , 300 )
self . setWindowTitle ( 'OpenFile' )
self . textEdit = QtGui. QTextEdit ( )
self . setCentralWidget ( self . textEdit )
self . statusBar ( )
self . setFocus ( )
exit = QtGui. QAction ( QtGui. QIcon ( 'open.png' ) , 'Open' , self )
exit. setShortcut ( 'Ctrl+O' )
exit. setStatusTip ( 'Open new File' )
self . connect ( exit, QtCore. SIGNAL ( 'triggered()' ) , self . showDialog )
menubar = self . menuBar ( )
file = menubar. addMenu ( '&File' )
file . addAction ( exit )
def showDialog ( self ) :
filename = QtGui. QFileDialog . getOpenFileName ( self , 'Open file' , '/home' )
file = open ( filename )
data = file . read ( )
self . textEdit . setText ( data )
app = QtGui. QApplication ( sys . argv )
cd = OpenFile ( )
cd . show ( )
app. exec_ ( )
この例では、メニューバー、 QTextEdit、およびステータスバーがフォームにあります。 メニュー項目を使用すると、ファイル選択ダイアログを開くことができます。 選択したファイルの内容がQTextEditにロードされます 。 ステータスバーは美容目的のみに表示されます:)
class OpenFile ( QtGui. QMainWindow ) :
...
self . textEdit = QtGui. QTextEdit ( )
self . setCentralWidget ( self . textEdit )
この例はQMainEditに基づいていますが、これはQTextEditフォームセンターを埋めたためです。 これは、 レイアウトに頼らずにQMainWindowで簡単に実行できます 。
filename = QtGui. QFileDialog . getOpenFileName ( self , 'Open file' , '/home' )
QFileDialogダイアログを開きます。 getOpenFileNameメソッドの2番目のパラメーターはウィンドウのタイトルです。 3番目は開始ディレクトリを示します。 ファイルフィルタは、デフォルトで[すべてのファイル(*)]に設定されています。
file = open ( filename )
data = file . read ( )
self . textEdit . setText ( data )
選択されたファイルの内容はQTextEditによって読み込まれ、入力されます 。

。