1

Qtを使用してバックグラウンドアプリケーションを作成しようとしています。

フォアグラウンドで実行する場合とデーモンとして実行する場合では、UIに違いがあります。

Ubuntu11.10からスタイルが変更されました。

  • フォアグラウンドでアプリケーションを実行する場合

  • デーモンとして実行している場合

main.cpp

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

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

form.h

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

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

form.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);
   }

form.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 に答える