Russian Qt Forum
Ноябрь 22, 2024, 20:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как работают сигналы в qt?  (Прочитано 3982 раз)
Rphoenix
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« : Февраль 22, 2020, 21:31 »

Здравствуйте, я новичок в qt, поэтому прошу и помочь разобраться;

допустим, есть spinbox. Как сделать, чтобы через QMessageBox выводился текст - его нынешнее значение?

________________________

Вообще мне нужно сделать, чтобы вместо чисел можно было выбирать текст.
Записан
Apktyc
Самовар
**
Offline Offline

Сообщений: 133


Просмотр профиля
« Ответ #1 : Февраль 23, 2020, 00:29 »

Вообще мне нужно сделать, чтобы вместо чисел можно было выбирать текст.
А QComboBox чем не устраивает? Но на всякий случай существуют QSpinBox::textFromValue, QSpinBox::valueFromText
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Февраль 23, 2020, 00:40 »

Здравствуйте, я новичок в qt, поэтому прошу и помочь разобраться;

допустим, есть spinbox. Как сделать, чтобы через QMessageBox выводился текст - его нынешнее значение?

________________________

Вообще мне нужно сделать, чтобы вместо чисел можно было выбирать текст.
а где собственная попытка разобраться? выглядит как «сделайте всё за меня».
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Rphoenix
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« Ответ #3 : Февраль 23, 2020, 01:33 »

void MainWindow::on_spinBox_valueChanged(const QString &arg1)
{

    int i=1;
    QMessageBox::about(this, "текст", ui->spinBox->cleanText());
    QMessageBox::about(this, "текст", QString::number(i));
    if (i==1)  {(ui->spinBox->setSpecialValueText("ааа"));}
    else if (i==2) {(ui->spinBox->setSpecialValueText("ббб"));}
     ui->spinBox->setValue(0);
     if (i>2) {i=1;} else i++;

   //     ui->spinBox->setSpecialValueText("ююю");

}

вот так он выводит текст, только цикл начинается с начала.  Необходимо, чтобы он выводил заранее написанные три слова по кругу.
в данном примере при изменении
Записан
Rphoenix
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« Ответ #4 : Февраль 23, 2020, 02:50 »

Вот так заработал перебор;

  b=ui->spinBox->cleanText();
    if (i>2) {i=0;};
    if (b=="ggg") {i=0;}
    else if (b=="aaa") {i=1;}
    else if (b=="bbb") {i=2;};



// QMessageBox::about(this, "текст", ui->spinBox->cleanText());
 // QMessageBox::about(this, "текст", QString::number(i));
     switch(i) {
       case 0:
         ui->spinBox->setSpecialValueText("aaa");  ui->spinBox->setValue(0);
         break;

       case 1:
         ui->spinBox->setSpecialValueText("bbb");  ui->spinBox->setValue(0);
         break;

       case 2:
         ui->spinBox->setSpecialValueText("ggg");  ui->spinBox->setValue(0);
         break;

     }
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.136 секунд. Запросов: 22.