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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Однотипные функции  (Прочитано 6393 раз)
pupapum
Гость
« : Февраль 01, 2008, 15:12 »

Всем доброго времени суток... Ребят, пишу коннест для кнопки. Если слот без параметров, то работает замечательно, а если же передаю параметр, то отказывается работать. Что делать?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Февраль 01, 2008, 15:17 »

Приведите код
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pupapum
Гость
« Ответ #2 : Февраль 01, 2008, 15:44 »

Код:
#ifndef __HELLO_H__
#define __HELLO_H__
#include <QLineEdit>
#include <QPushButton>

class Good:public QWidget
{
Q_OBJECT
public:
Good(QWidget *parent=0);
private slots:
void func1();
public:
QLineEdit *edit;
QPushButton *btn1;
};

#endif // __HELLO_H__


#include "hello.h"
#include <QGridLayout>
#include <QDoubleValidator>
#include <QString>
#include <QmessageBox>
int k;
double arg;
double res;
Good::Good(QWidget *parent):QWidget(parent)
{
resize(300,300);
edit=new QLineEdit(this);
edit->setValidator(new QDoubleValidator(-999999.0,
             999999.0, 6, edit));
edit->setAlignment(Qt::AlignRight);
edit->setGeometry(10,10,280,25);
edit->clear();
  edit->setEnabled("False");
btn1=new QPushButton("1",this);

      QGridLayout *layout = new QGridLayout;
      layout->addWidget(edit,0,0);
      layout->addWidget(btn1,3,0);
 
      setLayout(layout);

connect(btn1,SIGNAL(clicked()),this,SLOT(func1()));
}

void Good::func1()
{
QString x = edit->text();
QString y = "1";
x.append(y);
edit->setText(x);
}


Здесь код без параметра. Если передаю параметр в коннекте, то все компилируется,но кнопка не работает.
« Последнее редактирование: Февраль 01, 2008, 20:14 от pastor » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Февраль 01, 2008, 15:58 »

Во-первых., пользуйся тегом Код
Во-вторых, какой смысл приводить код "без параметра", если не работает код "с параметром"? Приведи НЕРАБОЧИЙ код.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ритт
Гость
« Ответ #4 : Февраль 01, 2008, 18:48 »

> edit->setEnabled("False");
как оно у тебя вообще компилится?!
Записан
Вячеслав
Гость
« Ответ #5 : Февраль 01, 2008, 18:53 »

А в сторону QSignalMApper'а посмотреть ?! Чет мне кажеться вотпрос из этой епархии ....
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Февраль 01, 2008, 20:14 »

имхо, просто при коннекте заданы не только типы но и имена параметров. Поэтому не коннектиться сигнал со слотом. Но это предположение. Без нерабочего кода трудно что сказать. Телепатов нет...
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
vaprele07
Гость
« Ответ #7 : Февраль 02, 2008, 03:55 »

Создаётся впечатление, что ты пытаешься не до конца всунуть вилку в розетку, чтобы у тебя была возможность впихнуть туда свои пальцы  Непонимающий
ЗЫ: можно задать параметрам значение по умолчанию при описании ф-ции...
Записан
Tonal
Гость
« Ответ #8 : Февраль 02, 2008, 14:24 »

> edit->setEnabled("False");
как оно у тебя вообще компилится?!
Это код типа "враги не пройдут!"
Написано "False" - это константа, типа const char[6], которая компилятором трактуется здесь как const char*, и т.к. отлична от 0, преобразуется в True.

P.S. Это похоже на известный перл индийского кода на Java:
Код:
... myFunc(bool isEnable, ...) {
  if (isEnable.toString() == "True") {
    ...
Записан
Dodge
Гость
« Ответ #9 : Февраль 11, 2008, 17:15 »

> edit->setEnabled("False");
как оно у тебя вообще компилится?!
Это код типа "враги не пройдут!"
Написано "False" - это константа, типа const char[6], которая компилятором трактуется здесь как const char*, и т.к. отлична от 0, преобразуется в True.

P.S. Это похоже на известный перл индийского кода на Java:
Код:
... myFunc(bool isEnable, ...) {
  if (isEnable.toString() == "True") {
    ...

нее... вот:
Код:
...
if ( isEnable.toString().length() < 5 ) {
...
Записан
Вячеслав
Гость
« Ответ #10 : Февраль 11, 2008, 17:24 »

> edit->setEnabled("False");
как оно у тебя вообще компилится?!
Это код типа "враги не пройдут!"
Написано "False" - это константа, типа const char[6], которая компилятором трактуется здесь как const char*, и т.к. отлична от 0, преобразуется в True.

P.S. Это похоже на известный перл индийского кода на Java:
Код:
... myFunc(bool isEnable, ...) {
  if (isEnable.toString() == "True") {
    ...

нее... вот:
Код:
...
if ( isEnable.toString().length() < 5 ) {
...
Гы Подмигивающий
if ( isEnable.toString().length() < 5 && (isEnable.toString()[0]='t' || isEnable.toString()[0]='T'] ) {

Они-же там еще за количество знаков в проге деньги раншье получали Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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