• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UbuntuでQt Designerでhello)

UbuntuでQt DesignerでHello Worldを表示させる方法

このQ&Aのポイント
  • Ubuntu Linuxを使って、Qt Designerを利用してHello worldを表示させる方法について解説します。
  • 具体的な手順としては、ラベルとボタンを配置し、シグナル/スロット編集を利用してボタンを押すとラベルがクリアされるように設定します。
  • さらに、ラベルに最初は何も表示されず、ボタンを押すとHello worldが表示されるようにするための方法も紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.4

No.2の補足です。 ヘッダー部が不足していますのでコンパイルエラーが発生しています。 たとえば下記のような定義(フォームとイベント(Qtではスロットと言っている))が必要です。 特に private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; の部分に着目してください。 --- なお、すでに書きましたがQt Creatorを使えば、ほとんど自動でコーディングしてくれますので、一気に理解が深まるものと思います。 下記のヘッダーファイルはDesignerで作成した画面をもとにCreatorが自動で作成したものです。 --- #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H

techhouse
質問者

お礼

回答頂きありがとうございます。 mainwindow.hファイルに private slots: void on_pushButton_clicked(); このコードを追加修正することで、 void MainWindow::on_pushButton_clicked() { ui->label->setText("test test"); } このコードを追加できるようになりました。 助かりました。

その他の回答 (3)

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.3

No.2の実行例です。 添付画像参照。

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.2

No.1の補足です。 DesignerはGUIインターフェースを作成するだけです。 Creatorを使用して ui を読み込んでください。 なお、Qt最新バージョンはすでにQt5です。 これから試すなら最新をインストールしてはどうでしょうか。 --- 今回の場合は、一例として下記のようになります。 ウィンドウを開いた時点では ui->label->setText(""); にて、ラベルのテキストはNULLを指定しています。 したがって何も表示されません。 PushButtonをクリックすると ui->label->setText("ようこそ Qt5です"); にて、ラベルのテキストは「ようこそ Qt5です」と表示されます。 --- #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->label->setText(""); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { ui->label->setText("ようこそ Qt5です"); }

techhouse
質問者

お礼

回答頂きありがとうございます。 サンプルプログラムなど詳細な方法教えて頂きありがとうございます。 mainwindow.cppファイルにこのコードを追加してみました。 void MainWindow::on_pushButton_clicked() { ui->label->setText("test test"); } ただ、次のようなエラーが発生し、ビルドが成功しません。 (エラー内容 4つ) C:\Qt\test_sample\tes0721_02\mainwindow.cpp:19: エラー: C2039: 'on_pushButton_clicked' : 'MainWindow' のメンバーではありません。 c:\qt\test_sample\tes0721_02\mainwindow.h:10: 'MainWindow' の宣言を確認してください。 C:\Qt\test_sample\tes0721_02\mainwindow.cpp:21: エラー: C2065: 'ui' : 定義されていない識別子です。 C:\Qt\test_sample\tes0721_02\mainwindow.cpp:21: エラー: C2227: '->label' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 型は ''unknown-type'' です。 C:\Qt\test_sample\tes0721_02\mainwindow.cpp:21: エラー: C2227: '->setText' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 "void MainWindow::"と記述した際に、候補がたくさんアガルのですが、”on_pushButton_clicked”というのは出てこないのですが、何か他に記述しないといけないことなどご教示頂きますようお願いします。

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.1

Buttonを押したらlabelのcaptionを”Hello world”とセットすればいいです。

techhouse
質問者

お礼

回答頂きありがとうございます。このUbuntuで動作させているQt Designer4というソフトに付いてあまり詳しくないのですが、このソフトのプロジェクトで動作させて作成されるファイルはuiという拡張子だけのようですが、このファイル内にcaptionなどのコードをテキストエディタなどで追加していくようなやり方でしょうか? qt designer4でコードを修正したりする機能はどこにありますでしょうか? すみませんが教えて頂けると助かります。

関連するQ&A