❶ 用的pyqt5,想實現點按鈕打開新窗口 【總是報錯,實在不知道這個BUG怎麼調了,求大佬幫助】
qt 點擊按鈕調用另一個窗口後,新窗口按鈕自定義槽函數不執行,...
主窗口按鈕的槽函數,點擊調用
void Ui_initface::set_clicked()
{
Ui_Dialog udialog;
udialog.setupUi(dialog);
dialog->show();
}
新窗口的槽函數
void Ui_Dialog::save_conf()
{
char s_c[11];
int s_i[8];
memset(s_i,0,8);
QString pstr;
s_i[0]=spinBox0->value();
printf("%d\n",s_i[0]);
s_i[1]=spinBox0_2->value();
pstr=lineEdit_ag->text();
const char *c_pstr = pstr.toLatin1().data();
//printf("%s\n",c_pstr);
strcpy(s_c,c_pstr);
s_i[4]=radioButton_ag1->isChecked();
s_i[5]=radioButton_ag01->isChecked();
s_i[2]=radioButton_a1->isChecked ();
s_i[3]=radioButton_01->isChecked ();
s_i[6]=radioButton_ab1->isChecked ();
s_i[7]=radioButton_ab01->isChecked ();
printf("%d\n",s_i[1]);
printf("%d\n",s_i[2]);
printf("%d\n",s_i[3]);
printf("%d\n",s_i[4]);
printf("%d\n",s_i[5]);
printf("%d\n",s_i[6]);
printf("%d\n",s_i[7]);
Write_Config(s_i,s_c);
emit CloseDialog();
}
❷ PYQT5中如何將按鈕點擊連接的結果輸出到界面上
筆記本鍵盤出現了按鍵失靈情況,這種情況多是由於軟體原因或鍵盤串鍵、短路或其他硬體故障等原因造成的,導致其他按鍵失靈,建議您可以做如下檢查確認故障進行嘗試:
1.開機出現SAMSUNG 圖標時按F2鍵進入BIOS設置,按F9鍵將BIOS恢復為出廠模式,按F10保存並重啟。
2.用U盤或光碟啟動進入PE或Dos模式中確認是否可用。
3.開機出現系統圖標前快速按F8鍵進入安全模式後進行嘗試,確認是否為系統或軟體故障引起。
4.查看按鍵下是否有異物,如有異物建議您將機器倒置或搖晃,也可請使用毛刷,、鑷子、氣吹等工具進行簡單的清除(注意不要損壞按鍵下支架,不建議非專業人員嘗試,以避免更嚴重的損壞)。若情況嚴重建議您送至售後服務中心由專業工程師進行清潔維修。
5.確認鍵盤是否曾有浸液史、確認失靈按鍵按下後是否可正常彈起,若發生過浸液或不能正常彈起則需要到售後服務中心,由工程師幫助您進一步檢查與維修。
6.重新安裝操作系統嘗試(提示您先備份重要數據與資料)。
7.若您需臨時使用,也可連接USB鍵盤使用。
❸ pyqt5按鈕打開文件
[python]view plain
importsys
importos
fromPyQt5.QtCoreimport*
fromPyQt5.QtWidgetsimport*
classNotepad(QMainWindow):
def__init__(self):
super().__init__()
self.initUI()
definitUI(self):
openAction=QAction('Open',self)
openAction.setShortcut('Ctrl+O')
openAction.setStatusTip('Openafile')
openAction.triggered.connect(self.openFile)
closeAction=QAction('Close',self)
closeAction.setShortcut('Ctrl+Q')
closeAction.setStatusTip('CloseNotepad')
closeAction.triggered.connect(self.close)
menubar=self.menuBar()
fileMenu=menubar.addMenu('&File')
fileMenu.addAction(openAction)
fileMenu.addAction(closeAction)
self.textEdit=QTextEdit(self)
self.textEdit.setFocus()
self.textEdit.setReadOnly(True)
self.resize(700,800)
self.setWindowTitle('Notepad')
self.setCentralWidget(self.textEdit)
self.show()
defopenFile(self):
filename,_=QFileDialog.getOpenFileName(self,'OpenFile',os.getenv('HOME'))
fh=''
ifQFile.exists(filename):
fh=QFile(filename)
ifnotfh.open(QFile.ReadOnly):
QtGui.qApp.quit()
data=fh.readAll()
codec=QTextCodec.codecForUtfText(data)
unistr=codec.toUnicode(data)
tmp=('Notepad:%s'%filename)
self.setWindowTitle(tmp)
self.textEdit.setText(unistr)
defmain():
app=QApplication(sys.argv)
notepad=Notepad()
sys.exit(app.exec_())
if__name__=='__main__':
main()
❹ pyqt5如何把Python代碼放在軟體里運行
在python中可以用
import os
os.system("python file")
這樣的方式實現運行另一個python文件的目的。
❺ pyqt5通過鍵盤多項同時選擇
ctrl不放用滑鼠點要選取的目標。
利用快捷鍵可以代替滑鼠做一些工作,可以利用鍵盤快捷鍵打開、關閉和導航「開始」菜單、桌面、菜單、對話框以及網頁,Word裡面也可以用到快捷鍵。
系統級快捷鍵可以全局響應,不論當前焦點在哪裡、運行什麼程序,按下時都能起作用。
一般系統和應用程序的快捷鍵可以按自己的操作習慣進行自定義。
❻ Python,pyqt5
pyqt5&pythonGui入門教程(1)第一個窗口(1) 第一個窗口和代碼詳細注釋: fromPyQt5importQtWidgets#從PyQt庫導入QtWidget通用窗口類classmywindow(QtWidgets.QWidget):#自己建一個mywindows類,以class開頭,mywindows是自己的類名,
❼ pyqt5輸入數學公式
輸入做加法
今天我們做一個簡單的輸入做加法的一個界面,涉及內容:
1、輸入框
2、按鈕事件
3、框內容獲取和修改
UI布局
首先按照第二講的說法,拖出一個和我一樣的界面,功能實現就是A+B=C,左邊兩個輸入框和輸出框是Line Edit控制項,然後最右邊是一個按鍵Push Button按鈕。
在屬性界面找到三個框和按鈕的objectName,分別命名A\B\C和Calculate
首先布局界面,然後按照上一講的方法,進行顯示,但是你發現你按計算按鈕沒有任何反應,這就要講到下一個知識點,按鈕點擊事件。
按鈕事件
實現A+B之前,我們先熟悉按鈕點擊事件,我們先再拖兩個按鈕,命名可以不管,顯示文字改為顯示和隱藏。如下圖
然後找到菜單欄,找到添加槽和信號按鈕。
然後滑鼠點顯示不要放,滑鼠移動到B輸入框會出現以下界面,簡單理解就是顯示按鈕的什麼信號會觸發B輸入框的什麼動作。
這邊左下角的勾打上,然後左邊表示按鈕顯示出發了什麼信號,我們選擇點擊信號,右邊表示需要連接到什麼動作,我們選擇B框的show(),表示B框的顯示。隱藏按鈕同理,左邊選擇點擊信號,右邊選擇hide(),表示隱藏。
然後保存,轉碼後,運行main.py,顯示狀態如下,效果是不是很明顯。
那麼我們現在回到剛剛的加法,計算按鈕上,由於我們使用的是A+B演算法,所以我們這個觸發的動作需要自己寫,因此在連接信號和槽框中,信號直接拉出來放在空白處,然後出來的槽動作那邊點編輯
在出來的彈窗中點擊+,添加槽函數,輸入CalculateClick()。相當於一旦我點擊計算按鈕,我就會調用這個函數的意思。
然後對應的選擇好之後,點擊OK,保存UI,並用PyUIC進行轉碼
然後我們打開UI.py,我們會發現這個函數,意思就是我們按鈕的點擊鏈接到了Calculate函數。然後我們需要在主函數中重寫這個函數。因為我們本身UI不帶這個函數
這邊我們需要對UI界面類進行重寫,在主函數中添加以下代碼:
class Mywindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super(Mywindow, self).__init__()
self.setupUi(self)
def CalculateClcik(self):
print("觸發按鈕。")
❽ python pyqt5 如何把ssh遠程執行的linux命令結果輸出到控制項上(如textEdit)
textEdit控制項應該有個setText函數,可以使用它來顯示想要顯示的文本。
❾ pyqt5實現按鍵後切換顯示圖片,我會顯示單張圖像但不知道,多張圖像怎麼搞
pyqt5實現按鍵後切換顯示圖片我會顯示單張圖像但不知道多張圖像搞
用 js (quot; button & quot;)寫 $。點擊(function (){ $(& amp; img & quot;) show () ; })
❿ python pyqt5 qthread有哪些方法
用例子說明吧,常用的不多
PyQt中的線程類 QtCore.QThread ,使用時繼承QThread類
啟動界面的線程暫稱為UI線程。界面執行命令時都在自己的UI線程中。
如果在UI線程中執行網路連接和資料庫操作等耗時的操作,界面會被卡住,Windows下有可能會出現「無響應」的警告。
阻塞UI線程會降低用戶體驗和應用穩定性。因此我們可以把耗時操作放在線程中去執行。
QThread代表一個線程,我們可以復寫run函數來執行我們要的操作。
QThread可以使用 QtCore.pyqtSignal 來與界面交互和傳輸數據。
PyQt4 QThread 代碼示例
•Python2.7
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore
from PyQt4.QtCore import QCoreApplication
from PyQt4.QtGui import QWidget, QPushButton, QApplication, QTextBrowser
class TimeThread(QtCore.QThread):
signal_time = QtCore.pyqtSignal(str, int) # 信號
def __init__(self, parent=None):
super(TimeThread, self).__init__(parent)
self.working = True
self.num = 0
def start_timer(self):
self.num = 0
self.start()
def run(self):
while self.working:
print "Working", self.thread()
self.signal_time.emit("Running time:", self.num) # 發送信號
self.num += 1
self.sleep(1)
class TimeDialog(QWidget):
def __init__(self):
super(TimeDialog, self).__init__()
self.timer_tv = QTextBrowser(self)
self.init_ui()
self.timer_t = TimeThread()
self.timer_t.signal_time.connect(self.update_timer_tv)
def init_ui(self):
self.resize(300, 200)
self.setWindowTitle('TimeDialog')
self.timer_tv.setText("Wait")
self.timer_tv.setGeometry(QtCore.QRect(10, 145, 198, 26))
self.timer_tv.move(0, 15)
btn1 = QPushButton('Quit', self)
btn1.setToolTip('Click to quit')
btn1.resize(btn1.sizeHint())
btn1.move(200, 150)
btn1.clicked.connect(QCoreApplication.instance().quit)
start_btn = QPushButton('Start', self)
start_btn.setToolTip("Click to start")
start_btn.move(50, 150)
self.connect(start_btn, QtCore.SIGNAL("clicked()"), self.click_start_btn)
def click_start_btn(self):
self.timer_t.start_timer()
def update_timer_tv(self, text, number):
self.timer_tv.setText(self.tr(text + " " + str(number)))
if __name__ == '__main__':
app = QApplication(sys.argv)
time_dialog = TimeDialog()
time_dialog.show()
sys.exit(app.exec_())
QThread中使用的信號 signal_time = QtCore.pyqtSignal(str, int) 指定了參數str和int
發送信號 self.signal_time.emit("Running time:", self.num)
外部接收信號 self.timer_t.signal_time.connect(self.update_timer_tv)
信號連接到方法 update_timer_tv(self, text, number) ,注意信號與方法的參數要一一對應
使用中我們可以定義多種不同的信號 QtCore.pyqtSignal
啟動線程,調用 start()