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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Открытие существующего окна  (Прочитано 6706 раз)
kadr
Гость
« : Июнь 24, 2009, 17:25 »

Есть виджет find_list.ui, и главное окно, на котором есть меню, в котором при нажатии на кнопку должно открываться уже созданое окно.
QWidget *widget = new QWidget;
widget->show();
Открывает новый виджет, как сделать так что бы открывался уже существующий виджет find_list.ui  Непонимающий
Записан
denka
Гость
« Ответ #1 : Июнь 24, 2009, 17:41 »

О тебе на этот вопрос давали ответ в другом топике. Я так понимаю ты до сих пор не разобрался с темой.
Просьба выложить find_list.ui. Попробуем решить твою проблему Улыбающийся
Записан
kadr
Гость
« Ответ #2 : Июнь 24, 2009, 18:04 »

нет, так и не разобрался, я конечно нашел как открывать новый виджет, но пока не пойму, как открыть уже существующий виджет! Что конкретно надо выложить?
Записан
denka
Гость
« Ответ #3 : Июнь 24, 2009, 18:10 »

Выложи find_list.ui
« Последнее редактирование: Июнь 24, 2009, 18:11 от den'ka » Записан
denka
Гость
« Ответ #4 : Июнь 24, 2009, 19:30 »

У тебя должен быть .h файл типа такого

Код:
#include "ui_find_list.h"

class FindList :public QWidget, public Ui::find_list
{
Q_OBJECT
public:
FindList( QWidget * parent = 0, Qt::WindowFlags f = 0 );
};

и .cpp типа такого

Код:
FindList::FindList(QWidget * parent, Qt::WindowFlags f):QWidget(parent, f)
{
setupUi(this);
//...
}
« Последнее редактирование: Июнь 24, 2009, 19:34 от den'ka » Записан
denka
Гость
« Ответ #5 : Июнь 24, 2009, 19:36 »

Ах да советую посмотреть вот это http://doc.qtsoftware.com/4.5/layout.html
Записан
kadr
Гость
« Ответ #6 : Июнь 30, 2009, 20:40 »

Привет всем, наконец то сделал так что бы у меня открывалось нужное мне окно, только почему то никакие события на нем не обрабатываются,  на форме должен поизводиться поиск из фойла при нажатии на кнопку:

Код
C++ (Qt)
void find_list::on_pushButton_clicked()
{
   QString date_s = m_ui->date_s->text(),date_po,str = m_ui->date_po->text();
   QFile file("tovars.txt");
   QByteArray line;
   QStringList spl;
   int sum = 0,row = 0;
   if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
             return;
while (!file.atEnd())
{
   line = file.readLine();
   line.trimmed();
   str.clear();
   str.append(line);
   str.trimmed();
   spl = str.split("|");
   str = spl.value(2);
   str.trimmed();
   if ((str>=date_s) && (str<=date_po))
   {
       spl.clear();
       str.clear();
       str.append(line);
       spl = str.split("|");
       str.clear();
       str = spl.value(1);
       sum +=str.toInt();
       m_ui->pole->setItem(row,0, new QTableWidgetItem(spl.value(0)));
       m_ui->pole->setItem(row,1, new QTableWidgetItem(spl.value(1)));
       m_ui->pole->setItem(row,2, new QTableWidgetItem(spl.value(2)));
       row++;
   }
}
m_ui->lcd->display(row);
str.clear();
m_ui->itog->setText(str.setNum(sum));

Но почему то ничего не происходит, в чем может быть проблема, подскажите пожалуйста!
« Последнее редактирование: Июль 01, 2009, 11:19 от pastor » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Июль 01, 2009, 10:43 »

вставь qDebug. Что пишет connect?
Записан
mugabe
Гость
« Ответ #8 : Июль 01, 2009, 11:14 »

И есть ли вообще connect?
А если нет, то стоит ли autoconnect?
Записан
kadr
Гость
« Ответ #9 : Июль 01, 2009, 16:59 »

Нет connect не использовал, а зачем, он открывает нужную мне форму, вот только на ней ничего не работает, нажимаю кнопку, должен произойти выбор записей из файла, а ничего не происходит, не реагирует!
Записан
denka
Гость
« Ответ #10 : Июль 01, 2009, 17:39 »

Как у тебя что среагирует если ты не соединил нужный сигнал со слотом?
Сделай on_pushButton_clicked() слотом, если она до сих пор им не является. А перед вызовом show() добавь строку:
Код:
connect(btn, SIGNAL(clicked()), widget, SLOT(on_pushButton_clicked()));

где btn это та кнопка на которую ты жмешь
Записан
kadr
Гость
« Ответ #11 : Июль 01, 2009, 18:21 »

У меня есть три окна, главное, поиск по дате и поиск по параметру, так вот на главном есть меню - называется действие, там есть подпункты поиск по дате и поиск по параметру, так вот при нажатии на любом из них открывается соответствующее окно, на котором расположена форма поиска, и есть кнопка Поиск, при нажатии на которую должно выполнятся вот это:

void find_list::on_pushButton_clicked()
{
    QString date_s = m_ui->date_s->text(),date_po,str = m_ui->date_po->text();
    QFile file("tovars.txt");
    QByteArray line;
    QStringList spl;
    int sum = 0,row = 0;
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::warning(this,"Error","File is not opening",QMessageBox::Ok);
        return;
    }
while (!file.atEnd())
{
    line = file.readLine();
    line.trimmed();
    str.clear();
    str.append(line);
    str.trimmed();
    spl = str.split("|");
    str = spl.value(2);
    str.trimmed();
    QMessageBox::warning(this,str,date_s,QMessageBox::Ok);
    if ((str>=date_s) && (str<=date_po))
    {
        spl.clear();
        str.clear();
        str.append(line);
        spl = str.split("|");
        str.clear();
        str = spl.value(1);
        sum +=str.toInt();
        m_ui->pole->setItem(row,0, new QTableWidgetItem(spl.value(0)));
        m_ui->pole->setItem(row,1, new QTableWidgetItem(spl.value(1)));
        m_ui->pole->setItem(row,2, new QTableWidgetItem(spl.value(2)));
        row++;
    }
}
m_ui->lcd->display(row);
str.clear();
m_ui->itog->setText(str.setNum(sum));
Но ничего не происходит, даже не выводится никакого сообщения QMessageBox::warning(this,str,date_s,QMessageBox::Ok), будто не реагирует, почему не пойму!
Записан
denka
Гость
« Ответ #12 : Июль 01, 2009, 18:37 »

Я ведь тебе написал что тебе надо сделать. Законекть сигнал clicked() со своей кнопки "Поиск" с нужным слотом и все
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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