QAbstractbuttonボタンクラスは抽象基底クラスだけでなく、彼のサブカテゴリーが有する機能を実装するために使用することができています
簡単な例
PyQt5.Qt インポート * インポートSYS のApp = はQApplication(sys.argvの) 窓 = はQWidget() window.setWindowTitle(' QAbstractButton ' ) window.resize( 500、500 ) クラスBTN(QAbstractButton): DEF paintEvent(セルフ、EVT) : #1どこか絵画、画家を作成 画家= QPainterの(自己) #画家ペンに2を #2.1ペン作成 ペン= QPen(QColor(111、200、20)、5 ) #2.2は、画家、ペンに painter.setPen(ペン) #3画家 painter.drawText(25、40 、self.text()) painter.drawEllipse(0、0、 100、100 ) BTN = BTN(ウィンドウ) btn.setText(' XXX ' ) btn.resize( 100 、100 ) btn.pressed.connect(ラムダ:印刷(" このボタンをクリックした" )) window.show() sys.exit(app.exec_())
例ショー:
- テキスト設定
- ピクチャーセッティング
- ショートカットキー
- オートリピート
- ボタンの状態
- 排他的
- 有効面積を設定します
PyQt5.Qt インポート * インポートSYS のApp = はQApplication(sys.argvの) 窓 = はQWidget() window.setWindowTitle(' ボタンの機能テスト-抽象クラス' ) window.move( 200は、200である) window.resize( 500、500 ) #window.setFixedSize(500、500)が固定されたサイズを設定# #************* ***************テキスト動作が始まる #BTN = QPushButton(ウィンドウ) #btn.setText(」1' )がヒント#テキスト提供され #DEF PLUS_ONEday(): #1 ( '+ 1')を印刷する # NUM = INT(btn.text())+ 1。 # Btn.setText(STR(NUM)) # # btn.pressed.connect(PLUS_ONEday) #*************テキスト操作************** *エンド #*************アイコンが***************動作を開始します 。#BTN =のQPushButton(ウィンドウ) #アイコン= QIcon(「dp.png ')画像#追加 ##btn.setIconを(アイコン)ピクチャ#ボタン、マナー #btn.setIcon(QIcon(' dp.png「))##設定ボタン画像、第二の方法 #1 #のサイズ= QSIZE(50、 50) ##btn.setIconSize(サイズ)#は、画像サイズを設定し、方法 #btn.setIconSize(QSIZE(50、50))#は、画像サイズを設定し、第二の方法 #1 #の印刷(btn.icon())#GETアイコン #印刷(btn.iconSize())#GETアイコンサイズ #アイコンアクション*************** *************終了 #*************セットのショートカット***************開始 #BTN =のQPushButton(ウィンドウ) #btn.setText( 'ボタン') #btn.pressed.connect(ラムダ:印刷( 'ボタンがクリックされました') ) #btn.setShortcut( '')ショートカットキー#設定する #自動的にショートカットキーを設定している&#btn.setText( '&B')を #************* *セットショートカット最後************** #************* ***************開始し、自動的に繰り返し #1 オートリピート手段は、ボタンを押し続けているホールド、常にスロットを実行する関数 #BTN =のQPushButton(ウィンドウ) #btn.setText( 'ボタン') #btn.setAutoRepeat(真)に設定自動反復# #btn.setAutoRepeatDelay(2000) #はミリ秒単位で、自動再送検出間隔を設定する #btn.setAutoRepeatInterval(1000)#セット遅延時間検出、MS #印刷(btn.autoRepeat()) #の印刷(btn.autoRepeatDelay()) #の印刷(btn.autoRepeatInterval()) #DEFのCaO(): #1 。印刷(1 ) #btn.clicked.connect(CaOと) #************* ***************エンド自動再送 #******* ****** ***************ボタンステータス開始 位のQPushButton =(ウィンドウ)PUSH_BUTTON #( 'のQPushButtonである')push_button.setText #1 push_button.move(100、100 ) # #RADIO_BUTTON、QRadioButton =(ウィンドウ) #) 'ラジオは' radio_button.setText( #radio_button.move(100、150) # # チェックボックス= QCheckBoxes(ウィンドウ) #(]チェックボックスである')checkbox.setText #checkbox.move(100、200である) #push_button.setStyleSheet(「のQPushButton:カラープレス{背景:レッド;}「) # # #設定#S押す ##push_button.setDown(真) ##radio_button.setDown(真) ##checkbox.setDown(偽) ##(push_button.isDownを(印刷)) # #を(radio_button.isDown())を印刷 ##プリント(checkbox.isDown()) #の #を##に設定ボタンが選択できる場合は #(真の)#push_button.setCheckable ##(push_button.isCheckable())を印刷 # #push_button.setEnabled(偽)#ボタンが設定されていません #************ *************ボタンの状態を***終了 #************* ***************排他的な設定開始 #の同じ排他制御で# #範囲(iのための0 ,. 3): # BTN = QCheckBoxes(ウィンドウ) # btn.setText( 'BTN' + STR(I)) # btn.move(I * 50、50 * I) # # btn.setAutoExclusive(真) #** *********** ***************エンド排他設定 #************* ****ボタンは、クリックをシミュレートします***********起動 #BTN =のQPushButton(ウィンドウ) #btn.setTextを( 'これはボタンである') #btn.move(200、200) #btn.pressed.connect(ラムダ:印刷() "は、このボタンをクリックした") #btn.animateClick(2000)#セットクリックをシミュレートする #*********** **ボタンアナログをクリックし***************終了 #************* ************セットの有効面積***開始 #をhitButton(のQPoint)法、有効な戻りトゥーレを書き換えることにより、無効なリターン偽 #のセットは、円形の領域 #のクラスBTN(のQPushButton): # DEF hitButton(セルフ、ポイント): #1 によって、#は、与えられました点座標、中心の距離を算出する 。# yuanxin_x self.width =()/ 2 # yuanxin_y self.height =()/ 2 # # hit_x point.x =() # hit_y point.y =() # # # #((X1 - X2)は、(Y1 +二乗- Y2)の二乗)四角 # インポート数学 # 距離= Math.sqrt(Math.pow(hit_x - yuanxin_x、2)+ Math.pow(hit_y - yuanxin_y、2) ) # 距離<self.width()/ 2 IF: #の リターン真 #1 #1 #距離<半径Trueの場合 #の リターン#偽 #の リターン偽 # #の #セットペインター # DEF paintEvent(セルフ、EVT): # スーパー()。 paintEvent(EVT) # 画家= QPainterの(自己) # (あるQPen(QColor(100、150、200),. 6))painter.setPen # # painter.drawEllipse(self.rect()) # # BTN BTN =(ウィンドウ) #btn.move(100、100) #btn.setText( "クリック") #btn.resize(200、200)# がbtn.clicked。 CONNECT(ラムダ値:印刷(「状態を選択するためのボタンが変更された」、値)) #************* **************有効エリアを設定*エンド window.show() sys.exit(app.exec_())