Zapis wybranej daty w QDateTimeEdit lub QCalendarWidget do Stringa
-
Witam!
Jestem początkującym gamoniem, dla którego Qt jest jak książka napisana w języku obcym. Wcześniej programowałem blisko sprzętu w ASMie i mam aktualnie straszne przeboje z cpp zwłaszcza, że znajomość Qt jest mi niezbędna do napisania pracy inżynierskiej.
@#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
#include <QtCore>MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);}
MainWindow::~MainWindow()
{
delete ui;
}//miejsce które mnie intryguje
void MainWindow::on_pushButton_clicked()
{QString tuna = ui->lineEdit->text(); ui->label->setText(tuna);
}
@Motyw jaki mnie intryguje jest taki: chcę by po naciśnięciu buttona (clicked) jakaś metoda pobrała datę z QDataTimeEdit (ewentualnie z QCalendar) i zapisała to jako zmienną (String)
Jak widać na wyżej umieszczonym kodzie umiem pobrać tekst z lineEdit i generalnie próbowałem zrobić to w podobny sposób z datą, jednakże nieskutecznie. Jest to dla mnie istotne gdyż chciałbym móc potem obliczać różnice czasowe między dwoma zdefiniowanymi datami(tudzież czasami).
-
Jeśli chcesz wykonywać jakiekolwiek operacje (porównywanie, odejmowanie, dodawanie) na dacie/czasie z QDateTimeEdit'a to nie ma sensu trzymać ich jako napis (QString).
Datę i czas lepiej trzymać w odpowiednich formatach: QDate, QTime lub QDateTime. Na obiekcie typu QDateTimeEdit masz odpowiednio metody date(), time() i dateTime() pobierające te wartości.
Konwersję np. QDateTime do QString w celu wyświetlenia robi się za pomocą metody toString(...), a w drugą stronę fromString(...).
Przykład:
@QDateTime dateTime = ui->dateTimeEdit->dateTime();
QDateTime dateTimeMod = dateTime.addYears(1).addSecs(360);
QString displayedValue = dateTimeMod.toString("dd.MM.yyyy hh:mm:ss");
ui->label->setText(displayedValue);@