我想在幾個QLineEdit小部件中使用用戶鍵入的文本在我的QTableView中設置水平標題的文本。我是模型視圖編程和Qt框架的新手,所以我不確定這是否是正確的方法,但我迄今爲止的工作是在我的MainWindow類中將QLineEdits的部件設置爲在所有的QLineEdits上調用中心部件,然後調用.text()。結果傳遞給一個列表,字符串列表作爲參數傳遞給我的模型類(QAbstractTableModel)。在模型中,我調用headerData()函數在右列標題中顯示字符串。但是由於QLineEdits最初是空的,因此沒有顯示任何內容。現在,當我嘗試更改QLineEdit中的文本時,它不更新標題,從而使標題保持空白。我應該使用哪些信號和插槽來將QLineEdit與我的模型連接起來? 感謝任何幫助。如何使QLineEdit小部件中的文本設置爲QTableView中的標題?
回答
由於沒有源代碼,我只是根據我以前的經驗給你我的意見。有兩種方式來實現信號和插槽。一種是,您可以爲所有lineEdit擁有多個「returnPressed」信號,並將其連接到一個插槽,我們可以將其命名爲「retrieve_all_line_edits」,以獲取LineEdits中的所有文本。無論您在哪一行,每次按下退貨時,它總是通過所有行編輯。 Pseducode這裏:
lineEdit1.returnPressed.connect(retrieve_all_line_edits)
lineEdit2.returnPressed.connect(retrieve_all_line_edits)
....
def retrieve_all_line_edits(self):
text1 = lineEdit.text()
text2 = lineEdit.text()
...
tableHeader = [text1, text2...]
table_header_update(tableHeader)
另一個是你可以有一個按鈕「點擊」信號,並做第一個相同的檢索的東西。
updateButton.clicked.connect(retrieve_all_line_edits)
retrieve_all_line_edits與上面相同。
對不起,使用python來解釋這一點。
正如我所說我以前沒有使用過QTableView,我無法準確回答你的問題。但我已經使用了這個,它可能是model.appendRow()或model.insertRow()或itemDelegate。如果它仍然無法正常工作,我建議您嘗試使用QTableWidget。
要更新您的QTableView小部件,無論您使用Qt Creator或Qt Designer還是您手動編寫UI,您都必須分別擁有一個UI類和一個更新UI操作類。爲了您的UI類,它可能看起來是這樣的:
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.tableView = QTableView()
和您的更新UI類中,你可以有:
class UpdateUI(object):
def __init__(self, parent = None):
super(UpdateUI, self).__init__()
self.ui = Ui_MainWindow() #This from your UI class
self.ui.setupUi(self) #Initialize your UI
self.signal_connect() #a self-written function that handle signal and slots
def signal_connect(self)
self.ui.updateButton.clicked.connect(self.update_table_view)
#or you could have lineEdits with return pressed signal as what I explained in previous answer.
def update_table_view(self):
#get all the texts first
data = self.retrieve_all_line_edit()
#update your table view, you have to fill this bit of code by yourself. I just give you an example here.
self.ui.tableView.appendRow(data)
您可以通過self.ui做所有的行動,你的UI組件,這是你的UI類的實例。
問題是我不知道我可以使用哪些qt函數來填充表格列。我如何將這個新的字符串列表傳遞給我的模型,以便它可以更新? – user21398
- 1. 如何將文本設置爲與QTableView一起用作QItemDelegate的QLineEdit
- 2. 當QlineEdit設置背景圖像時,如何在QLineEdit中設置文本顏色
- 3. pyqt4 QGridLayout中只提取QLineEdit小部件的文本
- 4. 如何在TableView中設置不同的QLineEdit文本
- 5. 如何在小部件的文本視圖上設置文本
- 6. 如何在Web組件中設置標籤的內部文本
- 7. QTableView/QTableWidget中類似Ktorrent的小部件
- 8. QTableView /自定義表模型:設置標題中的文本顏色
- 9. 如何爲CHM文件設置標題?
- 10. 如何將代碼中的文本顏色設置爲android小部件?
- 11. 如何在小部件中獲取/設置文本值?
- 12. 如何將QLineEdit默認文本設置爲一個空格?
- 13. QComboBox在QTableview的標題中
- 14. QTableView中的QLineEdit的結束版本信號
- 15. 如何在GWT標籤部件中設置文本格式
- 16. PyQt5如何設置QLineEdit行爲,如'\ n'
- 17. 如何將QTableView設置爲QTableView的單元格
- 18. 如何搜索網站標題部分的magento文件中的文本位置?
- 19. 從標題文本視圖窗口部件設置文本
- 20. SplitLayoutPanel - 如何將最小大小設置爲中心部件
- 21. 如何設置標籤文本對齊頂部iOS中的UITableViewCell
- 22. 如何在ActionBarSherlock 4.0中設置標題文本的樣式?
- 23. 如何使用Bootstrap設置側邊欄中的Wordpress小部件?
- 24. 如何爲QTableView中的每個單元設置ItemDelegate?
- 25. JQuery小部件:在子小部件中設置上下文
- 26. 如何設置查看Tkinter Entry小部件中文本的結尾?
- 27. 如何設置上下文菜單標題圖標的大小?
- 28. 如何在tkinter中設置小部件的大小?
- 29. PyQt5:QSqlTableModel連接QTableView和QLineEdit
- 30. 在QTableView中,如何使水平標題單元格顯示垂直文本?
非常感謝你,愚蠢的我沒有想到這件事,我一直在這一整天都在努力,所以我不介意這麼模糊......還要在python中編寫它,特別感謝你給出了一個簡短的python例子。 – user21398
我一直在想一點,並偶然發現另一個問題。現在我已經完成了這個任務,如何將這些新值傳遞給我的模型,以便它可以在我的QTableView中更新? – user21398