crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику crazymonkey ::: Спасибо сказали: 2 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
18.2.2012, 21:55 Разрабатываю форму
Я бы сделал так

main
Раскрывающийся текст

int main(int argc, char** argv)
{
    QApplication app(argc,argv);
    StartDialog* start = new StartDialog(0);
    start->show();
    return app.exec();
}



dialog.h
Раскрывающийся текст

class StartDialog: унаследовались
{
    Q_OBJECT
public:
    StartDialog(QWidget* parent = 0);
public slots:
  void slotButtonClicked();
};



dialog.cpp слот slotButtonClicked
Раскрывающийся текст

#include <start_dialog.h>
#include <main_window.h>

void StartDialog::slotButtonClicked()
{
    MainWindow* dlg = new MainWindow(//Передай число в конструкторе так то оно надёжнее будет);
    this->close();
    this->deleteLater();
    dlg->show();
}



сделай i приватным(private)
и консруктор главного окна какой-нибудь типа такого
Раскрывающийся текст

main_window::main_window(QWidget *parent, int we_need_this_i) : QWidget(parent),  ui(new Ui::main_window)   //Конструктор
{
    ui->setupUi(this);
    i = we_need_this_i;
}



Тогда тебе нужно будет вызывать конструктор как-нибудь вот так

Раскрывающийся текст

    MainWindow* dlg = new MainWindow(null, //тут твоя переменная которую ты получил);


TiiL,
28.12.2011, 19:53 QString вынуть int
Цитата(zloiia @ 28.12.2011, 2:13) *
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример

    QString str("A_14_R4");
    QRegExp rx("[a-zA-Z]_(\\d+)_[a-zA-Z](\\d+)"); //сам шаблон

    if(rx.indexIn(str,0)!=-1) //нашли вхождение шаблона
    {
        rx.cap(1); //тут у нас первое число
        rx.cap(2); //а тут второе
    }


Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро :)


Люблю регулярные выражения, но не счел нужным применения их в этой ситуации.
Была бы строка подлиннее, тогда я бы точно пользовался RegExp в полной мере.
А для строки такого формата я сделал так
1) Разбил строку по '_' функцией split
2) Воспользовался функциями которые предложил BlueIceScream
zloiia,

RSS Текстовая версия Сейчас: 26.2.2021, 23:52