crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 28.3.2024, 23:29