スキップしてメイン コンテンツに移動

Qt Creatorを使ってみる3 「ハローワールド」と入力して表示させる

前回は別ウィンドウを開いて「ハローワールド」を表示させましたが、今回は、別ウィンドウを開いてテキスト入力し、閉じることでメインウィンドウに入力テ キストを表示させようと思います。また、プログラム自体長くなるので、別ウィンドウのプログラム部分は、新たにクラスファイルとして作成し、作成プログラ ムを理解しやすいようにしてみます。
ソースファイルは下記に示します。
URL:https://drive.google.com/file/d/0B0oSFZs-dbRZMnM2V2phREp2d1U/edit?usp=sharing
プログラムは、以下になります。
widget.h:
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QString>

class subwindow;
class Widget : public QWidget
{
    Q_OBJECT
   
public:
    Widget(QWidget *parent = 0);
    ~Widget();
    QPushButton *m_button;
    QPushButton *m_cancel;
    subwindow *d;
    QLabel *label;
    QVBoxLayout *mvlayout;
    QHBoxLayout *mhlayout;

private:
private slots:
    void SWItem();
    void LabelText();
};

#endif // WIDGET_H

widget.cpp
#include "widget.h"
#include <QApplication>
#include <QWidget>
#include "subwindow.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    d=new subwindow;
    m_button=new QPushButton(this);
    m_button->setText(QApplication::translate("widget","開く",0,QApplication::UnicodeUTF8));
    m_cancel=new QPushButton(this);
    m_cancel->setText(QApplication::translate("Cancel","閉じる",0,QApplication::UnicodeUTF8));
    label=new QLabel(this);
    label->setText("NO TEXT");
    mvlayout=new QVBoxLayout(this);
    mhlayout=new QHBoxLayout();
    mhlayout->addWidget(m_button,0);
    mhlayout->addWidget(m_cancel,1);
    mvlayout->addWidget(label,0);
    mvlayout->addLayout(mhlayout,1);
    this->setLayout(mvlayout);
    connect(m_button,SIGNAL(clicked()),this,SLOT(SWItem()));
    connect(d->s_button,SIGNAL(clicked()),this,SLOT(LabelText()));
    connect(m_cancel,SIGNAL(clicked()),this,SLOT(close()));
}

Widget::~Widget()
{

}

void Widget::SWItem()
{
    d->show();
}

void Widget::LabelText()
{
    label->setText(d->textbox->text());
}

subwindow.h:
#ifndef SUBWINDOW_H
#define SUBWINDOW_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QVBoxLayout>



class subwindow : public QWidget
{
    Q_OBJECT
public:
    explicit subwindow(QWidget *parent = 0);
    QPushButton *s_button;
    QLineEdit *textbox;
    QVBoxLayout *svlayout;
signals:
   
public slots:
   
};

#endif // SUBWINDOW_H

subwindow.cpp:
#include "subwindow.h"
#include <QApplication>

subwindow::subwindow(QWidget *parent) :
    QWidget(parent)
{
    s_button=new QPushButton(this);
    s_button->setText(QApplication::translate("widget","閉じる",0,QApplication::UnicodeUTF8));
    textbox=new QLineEdit(this);
    svlayout=new QVBoxLayout(this);
    svlayout->addWidget(textbox,0);
    svlayout->addWidget(s_button,1);
    this->setLayout(svlayout);

    connect(s_button,SIGNAL(clicked()),this,SLOT(hide()));
}


実行すると以下になります。


開くをクリックすると別ウィンドウが開きます。

testと入力して閉じるをクリックするとメインウィンドウに「NO TEXT」から「test」に変わります。

まあ、ここまでは何とかうまくいきました

コメント

このブログの人気の投稿

特定化学物質及び四アルキル鉛等作業主任者の資格を取得しました!

5・6日に特定化学物質及び四アルキル鉛等作業主任者の技能講習に行きました。16日に修了証が郵送されてきて、とりあえず良かったです。 実をいうと、修了試験に合格しているかは不安だったんです。 法関連の講義が、前回受講した有機溶剤作業主任者の講義をしていた人だったので、内容も類似点が多く、正直ほとんど寝ていました。 そういうこともあり、最初の問題は、すごく焦りました。 4問正しい答えであれば万々歳といった感じだったんです! まあ、とりあえず取得できて本当に良かったです。

有機溶剤作業主任者の技能講習に合格!

10日に有機溶剤作業主任者技能講習修了証が郵送されてきました。とりあえず、合格してよかったです。 講義中、どういった問題がでるかを言っていたので、修了試験は、めっちゃ簡単でした。 合格率95%以上はうなずけます。

晴れていたのに・・・・・

今日、晴れていたのですが、完全 ノックアウト 状態でした。 前日の残業が響いているのかな・・・・・ 朝6時半には起床していたのですが、居間の座椅子に腰掛けたら、いつの間にか寝てしまいました。 気づいたら、 8時半! ちょうど朝食ができていたので、食事したのですが、体が重く、倦怠感があり、とても動ける状態にありません。 気持ちもあまり良い状態ではなく、少し沈む感じです。休日うつなのでしょうか? ここ最近続いているのですよね・・・・・ あまり良い状態ではありません。 ということで、お出かけはやめて、一日中ひきこもることにしました。 お出かけといっても、サイクリングなんですけどね。 久々に多摩湖や狭山湖を周回しまくって100km走行したいと思っていただけです。 ちなみにひきこもって何するの? というと、ネットゲームをやりまくりです。 インペリアルサガで一日消費することにしました。 さすがにメンタルが安定していないとはかどらないものですね・・・・ ここまでやりたいと思っていたことが半分ぐらいしかできていない。 今日はダメダメな一日でした。 今日の午後の空模様