crossplatform.ru

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


  Ответ в Как на QT запустить функцию при запуске программы?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
QCasper Дата 5.12.2007, 11:33
 
Цитата(ViGOur @ 5.12.2007, 10:55) *
Цитата(QCasper @ 5.12.2007, 10:14) *
А что мешает вызывать smb_conf() прямо из конструктора диалога?
Наверное в этом методе он передает или получает данные с диалога. Не просто же так он не использует конструктор.


Почему "наверное", он код привел этой функции, что там гадать. И там всего-то устанавливается какое-то значение для lineEdit, а этого в конструкторе никто не запрещает делать. Проблемы с вызовом функции в конструкторе в основном появляются когда Вам надо знать в ней размеры окна, или каким-то образом повлиять на них. Здесь я ничего подобного не вижу, а стало быть и проблемы тоже не вижу.
ViGOur Дата 5.12.2007, 10:55
 
Цитата(QCasper @ 5.12.2007, 10:14) *
А что мешает вызывать smb_conf() прямо из конструктора диалога?
Наверное в этом методе он передает или получает данные с диалога. Не просто же так он не использует конструктор.
QCasper Дата 5.12.2007, 10:14
  А что мешает вызывать smb_conf() прямо из конструктора диалога?
ViGOur Дата 4.12.2007, 22:07
  По твоему вопросу думаю должен помочь QShowEvent, хотя может быть есть и решение попроще.
Попробую сварганить пример...
ViGOur Дата 4.12.2007, 21:42
 
Цитата(Swappp @ 4.12.2007, 20:12) *
Вроде можно соединять сигнал с сигналом. А слот с слотом... Слот же выполняется, а не генерируется каким-нибудь объектом.
Хм, посмотрел и правда описывается, что только сигнал с сигналом и сигнал со слотом, но где-то я видел, что можно слот со слотом соединять, если конечно же не перепутал.
Swappp Дата 4.12.2007, 20:12
 
Цитата(ViGOur @ 4.12.2007, 18:18) *
В Qt можно соединить слот со слотом, сделай что-то вроде этого:
a.connect( this, SLOT(show()), this, SLOT( smb_conf()));

Вроде можно соединять сигнал с сигналом. А слот с слотом... Слот же выполняется, а не генерируется каким-нибудь объектом.
Цитата
Как мне автоматически выполнить функцию smb_conf() сразу после запуска программы?

Что есть "сразу после запуска программы"?
ViGOur Дата 4.12.2007, 18:18
  В Qt можно соединить слот со слотом, сделай что-то вроде этого:
a.connect( this, SLOT(show()), this, SLOT( smb_conf()));
tintix Дата 4.12.2007, 17:46
  В QT я новичок. Версия QT - 4.3, на пингвине. Прога состоит из main.cpp, share.h, share.cpp. Как мне автоматически выполнить функцию smb_conf() сразу после запуска программы? Какой обьект с каким сигналом соиденять? Раньше на Delphi это было просто - у формы выбирал OnActivate и вставлял функцию...


main.cpp
#include <QApplication>
#include "share.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    share *dialog = new share;

    dialog->show();
    return app.exec();
}



share.h
#ifndef SHARE_H
#define SHARE_H

#include "ui_share.h"


class share : public QDialog, private Ui::dialogs
{
    Q_OBJECT

public:
    share(QDialog *parent = 0);

public slots:
    void getPath();
    void smb_conf();
};

#endif



share.cpp
#include <QtGui>
#include "share.h"

share::share(QDialog *parent)
{
    setupUi(this);
    
    connect( pushButton_2, SIGNAL( clicked() ), this, SLOT( getPath() ) );
}

void share::getPath() {
    QString path;
    
    path = QFileDialog::getExistingDirectory(
        this,
        "Choose a folder",
    QDir::currentPath()
    );

lineEdit_3->setText( path );
    
}


void share::smb_conf () {
        
    int unsigned i = 0, linecounter = 0;
    QString tx;

    QString name[30];
    QFile fa ("/home/tintix/Desktop/smb.conf");

        ---------//Что-то происходит//--------------
      
        lineEdit->setText(name[0]);
}
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 11:30