Je veux créer un Widget Paramètres, où je peux choisir une Date.
Parce qu'il n'est pas agréable de créer 3 QLineEdits pour appeler QDate-Constructor avec QDate (int année, int mois, int jour), je pensais que ce serait mieux si vous pouviez appuyer sur un bouton "show calendar" pour exemple, où vous pouvez choisir la date.
Mais je ne veux pas montrer ce calendrier dans une nouvelle fenêtre, je veux le montrer comme un "Pop-up" (je ne sais pas comment l'expliquer), que vous pourriez savoir par exemple de l'OpenOffice -Paramètres.
Vous avez une idée de la façon de l'implémenter?QCalendarWidget comme "Pop-up", pas comme nouvelle fenêtre?
1
A
Répondre
2
Pour une autre option, avez-vous pensé à utiliser QDateEdit
? Cela permettra à vos utilisateurs d'éditer la date dans un format compatible avec le reste du système d'exploitation.
4
Ceci est un exemple d'un calendrier contextuel de type, vous devez afficher le calendrier lorsque vous appuyez sur le bouton du formulaire. Cette classe peut être réutilisée n'importe où dans votre code. Dans cet exemple, ceci est lancé dans la fonction principale.
/*
* 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();
}
Questions connexes
- 1. Popup/Nouvelle fenêtre + Redirect_to + Rails
- 2. solution pour la page popup comme modal
- 3. empêche popup d'ouvrir une nouvelle fenêtre en Ie6
- 4. Fenêtre popup ne s'ouvrant pas sur IE7
- 5. Fenêtre popup semblable à la fenêtre modale
- 6. Comment capturer des événements tirés à partir de la nouvelle fenêtre Popup IE
- 7. Bookmarklet Dans une nouvelle fenêtre
- 8. Comme dans l'instruction CASE ne pas évaluer comme prévu
- 9. ShowWindow de User32 n'agit pas comme prévu
- 10. AIR: nouvelle fenêtre ... ajouter du contenu ne s'affiche pas
- 11. Ext Dependency Builder dans la fenêtre POPUP
- 12. L'infobulle jQuery ne fonctionnait pas comme prévu - RÉVISÉ
- 13. ne souhaite pas ouvrir une nouvelle fenêtre en flash
- 14. Javascript Window.Opener Objet Null on .NET WebBrowser Control Nouvelle fenêtre
- 15. str.startswith() ne fonctionne pas comme prévu
- 16. Javascript ne fonctionne pas comme prévu, pourquoi?
- 17. XmlSerializer n'agit pas comme je le pense
- 18. $ getJSON n'est pas reconnu comme un tableau
- 19. Python .sort() ne fonctionne pas comme prévu
- 20. Type.IsSubclassOf ne se comporte pas comme prévu
- 21. HtmlAgilityPack sélectionnant childNodes pas comme prévu
- 22. Réécriture des sous-requêtes (pas) comme
- 23. __import__ Python ne fonctionne pas comme prévu
- 24. Avertissement comme erreur, mais pas tous
- 25. Résultat C# CryptoStream pas comme prévu
- 26. J @ ne fonctionne pas comme prévu
- 27. "LIKE" ne fonctionne pas comme prévu
- 28. addEventListener & wmp ne fonctionne pas comme prévu
- 29. comme requête ne fonctionne pas exacte
- 30. Regroupement Django ne fonctionne pas comme prévu
Cette solution est celle qui correspond le mieux à la question car c'est vraiment un QCalendarWidget qui est élevé – dlewin