您当前的位置: 首页 > 

龚建波

暂无认证

  • 2浏览

    0关注

    312博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

《QDebug 2020年6月》

龚建波 发布时间:2020-06-03 21:07:29 ,浏览量:2

一、Qt Widgets 问题交流 1.给 QTabBar::tab 设置样式表字体后文字左右被剪切

在样式表设置 QTabBar::tab 的字体后文字就不能完整显示了,在 Qt Bug Tracker 可以看到 Qt4 就存在的问题,https://bugreports.qt.io/browse/QTBUG-8209

解决的方法是,不直接给 tab 设置字体,而是给上级如 QTabBar 设置字体。

(不过实际效果有时还是会少 1 像素左右,勉强能看)

2.QTreeWidget横项滚动条适应内容宽度

加两句设置:

    //ui->treeWidget->expandAll();
    ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
    ui->treeWidget->header()->setStretchLastSection(false);

注意: ResizeToContents 是设置给 Header 的,不是 ui 里那个给 ScrollArea 设置的。

不过在树层级比较深的时候有点卡。

3.关闭模态窗口,有时候主窗口会跑到其他窗口后面去

参照:https://blog.csdn.net/sinat_35178307/article/details/102779973

参照:https://blog.csdn.net/lindexi_gd/article/details/51704599

文中提到,该问题是windows的BUG,问题原因是,在模态窗口关闭的时候,Windows 会找一个在这个窗口下方的第一个可用的窗口,激活他。因为弹出模态窗口的主窗口是被禁用的。所以在模态窗口关闭的时候,就忽略了主窗口可以激活,于是找到主窗口下方的一个可以被激活的窗口,这时激活他,于是这个被找到的窗口就在主窗口的上面。

解决方式,在模态窗口关闭时激活主窗口即可:

void activeWindow()
{
    this->show();
    this->raise();
    this->activateWindow();
}

或者关闭时设置为非模态(待测试)。 

4.QTableView表头设置了visible为true却还是不显示

今天把把Table的表头行设置为可见,但是运行起来却看不到。

tableView->verticalHeader()->setVisible(true);

调了半天才发现我样式表里只给QHeaderView::section设置了高度,却没设置宽度,结果他就默认宽度为0了。

QHeaderView::section{
height:25px;
width:60px; /*之前没设置*/
}
二、Qt Quick 问题交流 1.Loader卸载Scene3D时崩溃(待解决)

当我试图用 Loader 动态切换我的 Qt3D 示例时,发现卸载带 Scene3D 的组件会崩溃:

参见 Qt bug tracker:https://bugreports.qt.io/browse/QTBUG-64974

本来想用 Scene3DView 来切换,发现不能正常显示。

而且使用 MSVC2019 + Qt5.15 ,关闭 Qt3D 的程序时也会异常结束。

三、其他 1.去掉字符串空白符

QString 方式:

#include 
#include 

void test()
{
        QString str="   Date:2017-10-10\v \t 全角 空格\n \r\n~ 2017-10-15   ";
        //去掉头尾空白符,并把单词中间的空白符替换为单个空格(全角空格也替换了)
        //可以配合replace把全部空格去掉
        qDebug()            
关注
打赏
1655829268
查看更多评论
0.0468s