《QDebug 2020年7月》

一、Qt Widgets 问题交流

1.QComboBox 下拉框设置透明样式不生效

Popup默认是有阴影的,也没法设置透明,可以给下拉框中ListView的parent设置透明效果:

combox->view()->parentWidget()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint);
combox->view()->parentWidget()->setAttribute(Qt::WA_TranslucentBackground);

这种方式也可以用在自定义的弹出窗口中,如把QWidget设置为Popup弹出的时候。 

参考:https://blog.csdn.net/qq821181867/article/details/89639597

参考(未测试):https://blog.csdn.net/qq_43627385/article/details/103190377

2.QComboBox 下拉框给 Item 设置 padding-left 没效果

(问题版本:Qt5.12)

解决方法,设置了 border 后 padding-left 就生效了,如:

QComboBox QAbstractItemView::item {
height: 30px;
padding-left:10px;
border:1px solid transparent;
}

《QDebug 2020年7月》_第1张图片

3.鼠标放到菜单栏,QMainWindow的状态栏会被刷新

鼠标放到菜单时会触发StatusTip事件,而QMainWindow的event捕获并获取了其tip内容设置到状态栏:

#if QT_CONFIG(statustip)
        case QEvent::StatusTip:
#if QT_CONFIG(statusbar)
            if (QStatusBar *sb = d->layout->statusBar())
                sb->showMessage(static_cast(event)->tip());
            else
#endif
                static_cast(event)->ignore();
            return true;
#endif // QT_CONFIG(statustip)

所以,只需要重写下event函数,把StatusTip事件筛选掉就行了:

bool MainWindow::event(QEvent *event)
{
    if(event->type()==QEvent::StatusTip){
        qDebug()<(event);
        qDebug()<(event)->tip();
        event->ignore();
        return true;
    }
    return QMainWindow::event(event);
}

二、Qt Quick 问题交流

1.

三、其他

1.安装Qt6.0预览版,新建项目构建时报错

在main.cpp里加了一句:#pragma comment(lib, "Shell32.lib") 就能可以了。 

参考:https://www.cnblogs.com/2018shawn/p/11320998.html

你可能感兴趣的:(QDebug,稍纵即逝的追寻)