gpt4 book ai didi

qt - 如何子类化一个小部件以向其添加更多元素?

转载 作者:行者123 更新时间:2023-12-02 09:25:23 26 4
gpt4 key购买 nike

我正在尝试创建一个 QTableView 的子类,它在顶部嵌入了 QLineEdit 来过滤您键入的结果。我需要我的表格具有与普通 QTableView 相同的 API,因此我想对其进行子类化,而不是子类化 QWidget 并添加 QLineEditQTableView 到它。

我想我可以重新实现paintEvent(QPaintEvent*),改变QPaintEventrect()来开始一点lower(QLineEdit 的高度,因此它在其下方绘制),然后将其传递给 QTableView::paintEvent(),但是 QPaintEvent > 参数仅指示需要重新绘制的区域,而不是应绘制小部件的区域。

最佳答案

您在这方面所做的任何事情都将是很麻烦的,并且会导致与手动将所有信号和槽映射到子窗口小部件一样多的工作(可能更多的工作)。您需要做的不仅仅是更改绘画事件,您还必须调整所有鼠标事件,调整任何更新矩形等。

或者,您可以从 Qt 源代码中获取 QTableView 类并直接修改它(尽管这可能会破坏 LGPL,并且如果您没有商业许可证,则需要您发布源代码。)但是最简单的干净方法将实现一个以 QTableView 作为子级的容器小部件。

关于qt - 如何子类化一个小部件以向其添加更多元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/991477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com