在 QstandardItemModel 中添加可点击的 Qlabel
Adding a clickable Qlabel in QstandardItemModel
我目前有一个附加到QstandardItemModel的QtableView。我想在每行的最后一列插入一个可点击的 Qlabel。最初我想使用QPushButton,但事实证明它需要额外的开销,所以现在我计划使用可点击的Qlabel。关于我该怎么做的任何建议?如果有人可以使用QStandardItemModel模拟TableView中的单击事件,我将不胜感激
connect(ui.tableView,SIGNAL(clicked(const QModelIndex& ) ),
this,SLOT( itemClicked(const QModelIndex& ) ) );
slot:
void itemClicked( const QModelIndex& idx) {
int row = idx.row();
int column = idx.column();
}
如果您确实只需要一个可点击的标签,您可以创建从 QLabel 派生的类并添加自定义信号来处理点击事件:
class CustomWidget : public QLabel {
Q_OBJECT
public:
explicit CustomWidget(const QString& text, QWidget *parent = 0);
signals:
void released(void);
void clicked(void);
protected:
void mousePressEvent(QMouseEvent* e);
void mouseReleaseEvent(QMouseEvent* e);
private:
bool mousePressed;
};
CustomWidget::CustomWidget(const QString& text, QWidget* parent)
: QLabel(text, parent), mousePressed(false) {
}
void CustomWidget::mousePressEvent(QMouseEvent* e) {
mousePressed = true;
}
void CustomWidget::mouseReleaseEvent(QMouseEvent* e) {
emit released();
if(mousePressed) {
emit clicked();
mousePressed = false;
}
}
完整代码片段:
http://www.qtcentre.org/archive/index.php/t-42296.html?s=e9f0fd408147a1cd1048f252967895a0
相关文章:
- 如何使用新运算符跟踪在循环中创建的 QLabel
- 除了构造函数之外,还创建 QLabel
- 在 QLabel 中显示视频
- Qt GUI使用Qfiledialogbox和qlabel显示视频,这是我的代码
- 如何在C++中将自定义文本设置为 QLabel?
- 如何使用鼠标单击选择多个 QLabel 对象?
- 在特定时间内更改 QLabel 的背景颜色
- 如何将QLabel放入切换按钮Qt c ++中
- 如何在QListWidget中显示QStringList的每个项目QLabel和另一个QString?
- 类继承自QLabel,为什么不调用自定义插槽?
- 使用 QpushButton 切换显示在 QLabel 中的图像
- QLabel 未正确更新
- Qt多线程:如何更新两个QLabel?
- 如何在Qt中为任何QLabel设置可访问的名称,我们可以使用Windows讲述人读取
- QT-如何在我的笔记本电脑上全屏显示Qlabel
- 麻烦编译可单击的Qlabel
- 将一个 Qlabel 的 QPixmap 复制到另一个 Qlabel
- 在使用 resizeEvent 调整窗口大小时调整 Qlabel 图像的大小
- Qt 4.8.6 中的 qlabel mailto 链接
- Qt中是否有QLabel::setScaledContent等效函数用于QGraphicsScene?