我想在几个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