我想在幾個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. 如何在Web組件中設置標籤的內部文本
- 3. QTableView/QTableWidget中類似Ktorrent的小部件
- 4. 如何在小部件中獲取/設置文本值?
- 5. 如何將QLineEdit默認文本設置爲一個空格?
- 6. QComboBox在QTableview的標題中
- 7. 如何在GWT標籤部件中設置文本格式
- 8. PyQt5如何設置QLineEdit行爲,如'\ n'
- 9. 如何將QTableView設置爲QTableView的單元格
- 10. 從標題文本視圖窗口部件設置文本
- 11. 如何搜索網站標題部分的magento文件中的文本位置?
- 12. 如何設置標籤文本對齊頂部iOS中的UITableViewCell
- 13. 如何在ActionBarSherlock 4.0中設置標題文本的樣式?
- 14. 如何爲QTableView中的每個單元設置ItemDelegate?
- 15. 如何設置查看Tkinter Entry小部件中文本的結尾?
- 16. PyQt5:QSqlTableModel連接QTableView和QLineEdit
- 17. 如何爲文本小部件設置字符的最大寬度?
- 18. PyQt:如何在QTableView中的光標處插入文本
- 19. 在今日小部件中設置文件中的圖像
- 20. 如何在qt中設置小部件的絕對位置
- 21. 如何在GTK +中設置小部件的位置?
- 22. 如何在QT中設置中央小部件的大小/位置
- 23. 爲標籤頁設置中央小部件
- 24. 在JMenu組件中設置標題文本的對齊方式
- 25. TreeViewColumn標題中的PyGTK Entry小部件
- 26. 如何在Blogger中爲小部件標題添加邊框?
- 27. 如何使NSButton標題底部,爲本?
- 28. 如何在UiBinder中爲GWT小部件設置ID?
- 29. 如何在Android Studio中爲小部件設置高度?
- 30. 如何在用戶控件中設置標籤的文本
非常感謝你,愚蠢的我沒有想到這件事,我一直在這一整天都在努力,所以我不介意這麼模糊......還要在python中編寫它,特別感謝你給出了一個簡短的python例子。 – user21398
我一直在想一點,並偶然發現另一個問題。現在我已經完成了這個任務,如何將這些新值傳遞給我的模型,以便它可以在我的QTableView中更新? – user21398