yafeilinux 发表于 2013-10-14 22:54:16

心寒若冰 发表于 2013-10-14 16:20 static/image/common/back.gif
yafeilinux老师,还有个问题,我的界面中有三个lineEdit,但是通过界面上的数字按键输入时,想区别目前哪 ...

可以使用例如ui->lineEdit01->hasFocus()这样的方式来判断,

不过,一般你点击按钮的时候,按钮就会获得焦点,这个函数就没有效果了。

所以需要在构造函数里面先让所有按钮都不获取焦点,例如:
ui->pushButton->setFocusPolicy(Qt::NoFocus);

心寒若冰 发表于 2013-10-15 09:45:42

yafeilinux 发表于 2013-10-14 22:54 static/image/common/back.gif
可以使用例如ui->lineEdit01->hasFocus()这样的方式来判断,

不过,一般你点击按钮的时候,按钮就会获得 ...

非常感谢,之前只设置过hasFocus()函数,没想到还要对pushbutton进行设置,长知识了。另外,我想实现在鼠标点击多个lineEdit进行切换时,可以实现lineEdit其背景色改变,想通过信号槽函数实现,可是lineEdit没有对应的信号函数,有没有好的解决方案呢??

yafeilinux 发表于 2013-10-15 11:48:12

心寒若冰 发表于 2013-10-15 09:45 static/image/common/back.gif
非常感谢,之前只设置过hasFocus()函数,没想到还要对pushbutton进行设置,长知识了。另外,我想实现在鼠 ...

这个可以通过样式表来实现,设置鼠标点击时更改颜色。

心寒若冰 发表于 2013-10-15 15:37:49

yafeilinux 发表于 2013-10-15 11:48 static/image/common/back.gif
这个可以通过样式表来实现,设置鼠标点击时更改颜色。

样式表中selection-background-color函数是在选中某个lineEdit中的文字时,文字背景色高亮,我想实现的是选中某个lineEdit框时,该框背景色高亮。样式表没有找到鼠标点击时更改颜色的选项啊?

yafeilinux 发表于 2013-10-15 19:15:17

心寒若冰 发表于 2013-10-15 15:37 static/image/common/back.gif
样式表中selection-background-color函数是在选中某个lineEdit中的文字时,文字背景色高亮,我想实现的是 ...

在cursorPositionChanged信号对应的槽里面改就可以了

chenjieat 发表于 2013-11-25 13:32:34

学习了,谢谢楼主分享~~~

xinkexue 发表于 2013-12-28 17:25:56

ui->usrLineEdit->text().trimmed() == tr("yafeilinux")
啥时候用->啥时候用.?

yafeilinux 发表于 2014-1-9 22:11:33

xinkexue 发表于 2013-12-28 17:25 static/image/common/back.gif
ui->usrLineEdit->text().trimmed() == tr("yafeilinux")
啥时候用->啥时候用.?
简单来说指针用->,而普通变量用.

这个是C++的知识,在Qt Creator中直接按下.按键,会根据实际情况自动生成.或者->的。

WpKeane 发表于 2014-3-2 20:09:19

我想问一下,我用的是VS2010,右键登陆按钮时没有“转到槽。。。”这个选项怎么办?

yafeilinux 发表于 2014-3-3 11:15:01

WpKeane 发表于 2014-3-2 20:09 static/image/common/back.gif
我想问一下,我用的是VS2010,右键登陆按钮时没有“转到槽。。。”这个选项怎么办? ...

这个是Qt Creator设计器中才有的。没有的话就只能写代码了。

但是如果是初学者,估计很难完成。

建议还是先使用Qt Creator吧,等以后再用vs

WpKeane 发表于 2014-3-3 17:55:45

yafeilinux 发表于 2014-3-3 11:15 static/image/common/back.gif
这个是Qt Creator设计器中才有的。没有的话就只能写代码了。

但是如果是初学者,估计很难完成。


我试着在头文件中定义按钮点击函数,然后在源文件中实现,好像也可以!主要我最终是要将以前用MFC写的软件重新在Qt中实现,就选择用VS了!

Masterzhoujun 发表于 2014-3-4 17:30:23

你好!我在右键点击登录,选择转到槽,选择clicked()后会弹出来一个对话框:找不到符合“ui_LoginDialog.h”的文档。这该怎么解决啊!我是新手,不会弄

yafeilinux 发表于 2014-3-4 21:44:36

Masterzhoujun 发表于 2014-3-4 17:30 static/image/common/back.gif
你好!我在右键点击登录,选择转到槽,选择clicked()后会弹出来一个对话框:找不到符合“ui_LoginDialog.h ...

只能说明没有按照步骤来。

也可以下载最后面的源码测试。

elvis_w 发表于 2014-3-24 13:48:45

话说accept()函数到底是做什么的呢?

cathyi 发表于 2014-3-25 18:08:09

本帖最后由 cathyi 于 2014-3-26 18:42 编辑

亚飞老师我有三个问题,
1.,         w.show();
      return a.exec();中,w.show()函数为什么没有一闪而过?是a.exec()将窗口保持了?不太明白a.exec()的作用。
2.void LoginDialog::on_loginButton_clicked()
{
    if(ui->userlineEdit->text()==tr("fsy")&&ui->pwdlineEdit->text()==tr("love"))
   {
      accept();
    }
    else{
      QMessageBox::warning(this, tr("Waring"),
                            tr("user name or password error!"),QMessageBox::Yes,QMessageBox::No);


      if(QMessageBox::Yes)// 清空内容并定位光标
       {
      ui->userlineEdit->clear();
      ui->pwdlineEdit->clear();
      ui->userlineEdit->setFocus();
      }
      else
         {
            close();
      }
    }
}
如何在这段代码里实现点yes清除,点no关闭QMessageBox 和logindialog?
3.void LoginDialog::on_userlineEdit_returnPressed()
{
    ui->pwdlineEdit->setFocus();
}
这里希望在用户名输完后按enter键能focus到pwdlineEdit,这里按enter直接跳到了messagebox了,问题在哪?是否是操作不对?

yafeilinux 发表于 2014-3-28 20:39:56

cathyi 发表于 2014-3-25 18:08 static/image/common/back.gif
亚飞老师我有三个问题,
1.,中,w.show()函数为什么没有一闪而过?是a.exec()将窗口保持了?不太明白a.exe ...

第一,之所以w.show()可以显示而没有一闪而过,是因为a.exe()的原因,这个是事件循环。你可以这样理解:普通函数里面w.show()一闪而过,是因为普通函数执行完了;但是现在是在main()函数中,它永远不会退出。

第二,不想显示哪个按钮,不添加就行了,就是在调用QMessageBox的时候不要写QMessageBox::Yes即可。

第三,这个看上去是没有问题的,应该这么做,但是你的程序没有实现想要的效果,需要自己看下是哪里设置出现的问题。

ydd1978 发表于 2014-6-16 15:36:57

真的很不错,每天一步一步进阶吧

aa88158859 发表于 2014-7-4 18:12:30

为什么看不见图片
:'(:'(:'(

yafeilinux 发表于 2014-7-4 21:07:55

aa88158859 发表于 2014-7-4 18:12 static/image/common/back.gif
为什么看不见图片

登陆以后应该可以看到的

aa88158859 发表于 2014-7-5 13:28:05

在主界面设置一个按钮名字为注销 按下返回到登录对话框   

void MainWindow::on_pushButton_clicked()
{
    LoginDialog *dlg=new LoginDialog(this);
    dlg->show();

}
这样子不能把主界面关闭 有什么方法可以实现?
页: 1 2 [3] 4 5 6 7 8
查看完整版本: 第3篇 基础(三)Qt登录对话框