2017-08-19 15 views
1

誰でも私にビジュアルで既存のクラスに.uiファイルを追加する方法の手順を教えてもらえますか? 最初にVisualに新しい項目を追加しました。その後、「QTダイアログフォームファイル」オプションを選択し、QTデザイナーで希望するダイアログフォームを作成しました。QUIの既存のクラスに.uiファイルを追加する

マイ.hファイル:

(...) 
#include "ui_Serial.h" 


class Serial : public QWidget 
{ 
    Q_OBJECT 

public: 
    Serial(QWidget *parent); 
    ~Serial(); 

    Ui::Serial *ui; 
(...) 

私の問題は、私は、セットアップのUI機能を使用できないこと、である:

Serial::Serial(QWidget *parent) 
: QWidget(parent) 
{ 
    serial = new QSerialPort(this); 
    ui->setupUi(this); 

} 

私はこのエラーを取得しています: は "から、引数1を変換することはできませんシリアル* 'から' QDialog *

どのように私はそれを渡すことができますか? アイデア グリーティング

+0

ええ、ありがとう。このような簡単な解決策; p ご挨拶: –

+0

Sir、あなたの問題を解決するのに役立つと言われたら、私の答えを正しいものにしてみませんか? – eyllanesc

答えて

2

各テンプレートにはデフォルトのクラスがあります。これは、.uiがビルドされるとクラスコマンドが埋め込まれるためです。テンプレートを使用する場合は

  • ウィジェットあなたのクラスはQWidgetでなければなりません。
  • あなたは下のボタンを持つテンプレートダイアログを使用している場合はダイアログのボタンと右、あなたのクラスはQDialogあるべきボタンなしダイアログ。
  • テンプレートを使用する場合メインウィンドウクラスはQMainWindowである必要があります。

だから我々はあなたがQDialogを継承するクラスを使用する必要があり、あなたのケースで結論:

* .hの

#include "ui_Serial.h" 


class Serial : public QDialog 
{ 
    Q_OBJECT 

public: 
    Serial(QWidget *parent=0); 
    ~Serial(); 

    Ui::Serial *ui; 
} 

を* .cppファイル

Serial::Serial(QWidget *parent):QDialog(parent) 
{ 
    serial = new QSerialPort(this); 
    ui->setupUi(this); 

} 
関連する問題