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).


  • Moderators

    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);@



  • Dziękuję! To właśnie wyjaśniło mi sprawę :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.