• 3216阅读
  • 1回复

[提问]请问 Qt 运行在 frambuffer 时无法显示窗体是什么原因 [复制链接]

上一主题 下一主题
离线鱼香肉狮
 

只看楼主 倒序阅读 楼主  发表于: 2016-12-27
QT-5.5.1,程序在 x86 + disktop 下运行正常,但在 frambuffer 下(没有任何桌面环境,类似 ubuntu server textonly)无法显示 widget / dialog 的外部窗体结构,具体如下图所示,看起来与执行了 setWindowFlags(Qt::FramelessWindowHint) 效果一样,请问这是因为没有桌面环境导致的么?除了安装桌面环境外还有什么解决办法?

同一份程序,在有桌面的环境下就显示正常:



在 frambuffer 环境下就没有外边框了。。。



源码如下:
  1. QString noticeStr = "Sorry, --------------------------------------.";
  2. QMessageBox::information(this, "Note", noticeStr);


也尝试过重写 MessageBox ,但是依然没有效果,源码如下:
  1. DialogMessageBox *noteBox = new DialogMessageBox();
  2. noteBox->setModal(true);
  3. noteBox->setTitle("Note");
  4. noteBox->setContext("Sorry, please select the disk you want to backup.");
  5. noteBox->setButtonText("OK");


DialogMessageBox.cpp:
  1. DialogMessageBox::DialogMessageBox(QWidget *parent)
  2.     : QDialog(parent)
  3. {
  4.     this->setFixedSize((Global::global_values.width_unit*13), (Global::global_values.height_unit*3));
  5.     this->move(((Global::global_values.width - (Global::global_values.width_unit*13))/2),
  6.                ((Global::global_values.height - (Global::global_values.height_unit*3))/2));
  7.     m_labIcon = new QLabel();
  8.     m_labIcon->setScaledContents(true);
  9.     m_labIcon->resize((Global::global_values.width_unit*1), (Global::global_values.height_unit*1));
  10.     m_labIcon->setPixmap(QPixmap(":icon"));
  11.     m_labIcon->show();
  12.     m_labText = new QLabel();
  13.     m_labText->setWordWrap(true);
  14.     m_labText->setText("");
  15.     m_btnOK = new QPushButton();
  16.     connect(m_btnOK, SIGNAL(clicked(bool)), this, SLOT(slotBtnOKClicked()));
  17.     m_gridLayout = new QGridLayout();
  18.     m_gridLayout->setSpacing(1);
  19.     m_gridLayout->addWidget(m_labIcon, 0, 0, 1, 1);
  20.     m_gridLayout->addWidget(m_labText, 0, 4, 2, 9);
  21.     m_gridLayout->addWidget(m_btnOK, 2, 11, 1, 2);
  22.     this->setLayout(m_gridLayout);
  23.     this->show();
  24. }




离线鱼香肉狮

只看该作者 1楼 发表于: 2017-01-03
自己顶一下
快速回复
限100 字节
 
上一个 下一个