1

我正在尝试使用 Qt 创建一个后台应用程序。

在前台运行和作为守护进程运行在ui上是有区别的。

自 Ubuntu 11.10 以来,样式已更改。

  • 在前台运行应用程序时

  • 作为守护进程运行时

主文件

    #include <QApplication>
    #include "form.h"

    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
        Form *pForm = new Form();
        pForm->show();
        return app.exec();
    }

表格.h

    #include <QWidget>
    namespace Ui {
        class form;
    }

    class Form : public QWidget
    {
        Q_OBJECT
    public:
        explicit Form(QWidget *parent = 0);
    private:
        Ui::form *ui;
    };

表单.cpp

    #include "form.h"
    #include "ui_form.h"

   Form::Form(QWidget *parent) : QWidget(parent)
      , ui(new Ui::form)
   {
      ui->setupUi(this);
      ui->label->setText(QT_VERSION_STR);
   }

表单.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>form</class>
 <widget class="QWidget" name="form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <widget class="QPushButton" name="pushButton">
   <property name="geometry">
    <rect>
     <x>270</x>
     <y>240</y>
     <width>98</width>
     <height>27</height>
    </rect>
   </property>
   <property name="text">
    <string>PushButton</string>
   </property>
  </widget>
  <widget class="QTabWidget" name="tabWidget">
   <property name="geometry">
    <rect>
     <x>30</x>
     <y>30</y>
     <width>341</width>
     <height>191</height>
    </rect>
   </property>
   <widget class="QWidget" name="tab">
    <attribute name="title">
     <string>Tab 1</string>
    </attribute>
   </widget>
   <widget class="QWidget" name="tab_2">
    <attribute name="title">
     <string>Tab 2</string>
    </attribute>
   </widget>
  </widget>
  <widget class="QLabel" name="label">
   <property name="geometry">
    <rect>
     <x>50</x>
     <y>240</y>
     <width>141</width>
     <height>31</height>
    </rect>
   </property>
   <property name="text">
    <string/>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>   

这只是简单的 UI 来测试。

我认为前台应用程序将“桌面设置”应用为 GUI 样式,但我不知道守护程序应用程序使用哪种样式(右上图)。

为什么风格不一样?

4

1 回答 1

0

为了在任何平台或环境上拥有统一的样式,您需要明确设置应用程序样式:

QApplication app(argc, argv);
app.setStyle(new QPlastiqueStyle()); //or similar.
于 2013-02-04T13:15:46.213 回答