「ポップアップ」としてではなく、新しいウィンドウとしてQCalendarWidget?

StackOverflow https://stackoverflow.com/questions/1352334

  •  20-09-2019
  •  | 
  •  

質問

私は日付を選択することができます設定 - ウィジェットを作成したい。
QDATE(int型の年、int型の月、int型日)でQDATE-コンストラクタを呼び出すために3 QLineEditsを作成するために素敵ではないので、私は、あなたが例えば、「ショーのカレンダー」-Buttonをプッシュすることができれば、それは、良いだろうと思いましたどこで日付を選択することができます。
しかし、私はあなたがOpenOfficeの-設定から例えば知っているかもしれない、(私はこれを説明する方法がわからない)「ポップアップ」としてそれを見せたい、新しいウィンドウでこのカレンダーを表示したくありません。
あなたはそれを実装する方法任意のアイデアを持っている?

役に立ちましたか?

解決

別のオプションについては、あなたが使用して検討している QDateEdit の?これは、ユーザーがオペレーティングシステムの残りの部分と一致している形式で日付を編集することができます。

他のヒント

フォーム上のボタンを押すと、

これは、タイプポップアップカレンダーの一例である、あなたは、カレンダーを表示しなければなりません。このクラスは、あなたのコード内の任意の場所で再利用することができます。この例では、これは主な機能で起動されます。

 /*
     * DatePopup.h
     *
     *  Created on: Aug 29, 2009
     *      Author: jordenysp
     */

#ifndef DATEPOPUP_H_
#define DATEPOPUP_H_

#include <QDialog>
#include <QDate>
class QCalendarWidget;
class QDialogButtonBox;
class QVBoxLayout;

class DatePopup : public QDialog{
    Q_OBJECT
public:
    DatePopup(QWidget *parent=0);
    QDate selectedDate() const;

private:
    QWidget *widget;
    QCalendarWidget *calendarWidget;
    QDialogButtonBox* buttonBox;
    QVBoxLayout *verticalLayout;

};

#endif /* DATEPOPUP_H_ */


/*
 * DatePopup.cpp
 *
 *  Created on: Aug 29, 2009
 *      Author: jordenysp
 */

#include <QtGui>
#include "DatePopup.h"

DatePopup::DatePopup(QWidget *parent)
:QDialog(parent, Qt::Popup)
{
    setSizeGripEnabled(false);
    resize(260, 230);
    widget = new QWidget(this);
    widget->setObjectName(QString::fromUtf8("widget"));
    widget->setGeometry(QRect(0, 10, 258, 215));

    verticalLayout = new QVBoxLayout(widget);
    verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
    verticalLayout->setContentsMargins(0, 0, 0, 0);

    calendarWidget = new QCalendarWidget(widget);
    calendarWidget->setObjectName(QString::fromUtf8("calendarWidget"));

    verticalLayout->addWidget(calendarWidget);

    buttonBox = new QDialogButtonBox(widget);
    buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
    buttonBox->setOrientation(Qt::Horizontal);
    buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);

    verticalLayout->addWidget(buttonBox);

    QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
    QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
}

QDate DatePopup::selectedDate() const{
    return calendarWidget->selectedDate();
}




#include <QtGui>
#include <QDate>
#include <QApplication>
#include "DatePopup.h"
#include <iostream>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    DatePopup popup;

    int result = popup.exec();
    if(result == QDialog::Accepted){
        QDate date = popup.selectedDate();
        std::cout<< date.year() <<std::endl;
        std::cout<< date.month() <<std::endl;
        std::cout<< date.day() <<std::endl;
    }

    return a.exec();
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top