【问题标题】:How to add a small triangle at one of the corners of QWidget?如何在 QWidget 的一个角处添加一个小三角形?
【发布时间】:2013-12-23 09:13:52
【问题描述】:

我正在使用的 QPushButton 的左下角或右上角有一个小三角形。我不确定它是如何显示的。我只是使用简单的按钮。对于从 QWidget 派生的自定义小部件,我需要同样的东西。

我想知道是否有任何标志可以设置它还是我需要明确实施?看起来像我们在某些在线 pdf 中看到的翻页符号。

我对 Qt 有点陌生。请回答。

【问题讨论】:

  • 你可以使用QWidget::setStyleSheet来设置你需要的图片背景。
  • 我正在尝试使用样式表,但无法正确设置图像。它至少没有出现。我正在尝试这样做。让我知道我是否在那里犯了任何错误。 m_pWidget->setStyleSheet("background-image: url(:/icons/Drill_progress_marker_left.svg); background-position: top right");

标签: qt qwidget


【解决方案1】:

小三角表示 QPushButton 有一个关联的弹出菜单:QPushButton::setMenu()

如果要添加三角形,可以使用样式表或重新实现QWidget::paintEvent() 将三角形绘制在角落。一个基本的例子:

void Widget::paintEvent( QPaintEvent* event ) {
    QWiudget::paintEvent( event );
    QPainter painter( this );
    QPolygon p();
    p.append( QPoint(10, 10) );
    p.append( QPoint(14, 10) );
    p.append( QPoint(12, 14) );
    painter.drawPolygon( p );
}

但是,我认为,更好的解决方案是将QPushButton 添加到您的小部件。检测三角形的点击会更容易......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多