找回密码
 立即注册
收起左侧
楼主: yafeilinux

第3篇 基础(三)Qt登录对话框

142
回复
149741
查看
  [复制链接]
累计签到:2 天
连续签到:1 天
2013-9-30 22:02:35 显示全部楼层
为什么汉字显示不出来。。。。
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2013-9-10 16:32:01 显示全部楼层
非常不错,谢谢;楼主
回复 支持 反对

使用道具 举报

累计签到:213 天
连续签到:1 天
2013-9-5 10:48:08 显示全部楼层
yafeilinux 发表于 2013-9-5 10:37
改成:#include试试。

你用什么版本的Qt 和Qt Creator

qt 版本是 4.8.5
QTcreator 2.8.1  win7

难道是因为建工程的时候没有添加默认的qt5.1.1的套件?我去试试
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-9-5 10:37:24 显示全部楼层
MLTRwhy 发表于 2013-9-5 09:51
为什么我的代码补齐不好用 clear();   setFocus() ;text() 都要手动输入
#include 下有波浪线警告,但是 ...

改成:#include<QApplication>试试。

你用什么版本的Qt 和Qt Creator
回复 支持 反对

使用道具 举报

累计签到:213 天
连续签到:1 天
2013-9-5 09:51:11 显示全部楼层
为什么我的代码补齐不好用 clear();   setFocus() ;text() 都要手动输入
#include <QtGui/QApplication>下有波浪线警告,但是编译运行都没问题
  
回复 支持 反对

使用道具 举报

累计签到:67 天
连续签到:1 天
2013-8-11 12:49:24 显示全部楼层
exec() 不太懂。。。{:soso_e130:}
回复 支持 反对

使用道具 举报

尚未签到

2013-6-26 17:30:46 显示全部楼层
真的很不错,就这样一步一步进阶吧
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-6-4 22:32:01 显示全部楼层
进碗里没 发表于 2013-6-4 19:34
您好我想问一下 if (dlg.exec() == QDialog::Accepted)中最后的Accepted是函数吗,为什么开头字母大写呢 ...

那个是枚举值
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-6-4 22:30:09 显示全部楼层
caikeyter 发表于 2013-6-4 09:23
您的是直接 选择“转到槽”。但是在 “信息和槽编辑器”哪里添加的,效果不一样。昨晚我回家看了那本书了 ...

嗯。那是信号和槽关联的几种不同方式。最终效果是一样的。也就是说一种方法能实现的,其他方法也能实现。
回复 支持 反对

使用道具 举报

尚未签到

2013-6-4 19:34:23 显示全部楼层
您好我想问一下 if (dlg.exec() == QDialog::Accepted)中最后的Accepted是函数吗,为什么开头字母大写呢
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-4 09:23:26 显示全部楼层
yafeilinux 发表于 2013-6-3 21:52
5.右击登录按钮,在弹出的菜单中选择“转到槽…”,然后选择clicked()信号并确定。转到相应的槽以后,添 ...

您的是直接 选择“转到槽”。但是在 “信息和槽编辑器”哪里添加的,效果不一样。昨晚我回家看了那本书了,确实是,通过on_btnname_clicked()这样会自动关联,估计是在编译的时候,关联上了。
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-6-3 21:52:34 显示全部楼层
caikeyter 发表于 2013-6-3 13:51
找到问题所在了。因为我在信号和槽编辑器里面 给 登陆 按钮 添加了一个。而您的例子里面是没有的,只给了 ...

5.右击登录按钮,在弹出的菜单中选择“转到槽…”,然后选择clicked()信号并确定。转到相应的槽以后,添加函数调用:
void LoginDialog:n_loginBtn_clicked()
{
    accept();
}

这里使用了自动关联,on_loginBtn_clicked()这个命名就已经关联了。在《Qt Creator快速入门》的130页有介绍。
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-3 13:51:19 显示全部楼层
yafeilinux 发表于 2013-6-3 09:40
应该不会吧,你用qDebug()输出一下输入的信息,检查一下是哪里有问题。

可以下载源码运行一下试试,看看 ...

找到问题所在了。因为我在信号和槽编辑器里面 给 登陆 按钮 添加了一个。而您的例子里面是没有的,只给了“退出” 添加 信号和槽。 我不是很明白,登陆 按钮的事件是怎么关联上的??????
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-6-3 09:40:53 显示全部楼层
caikeyter 发表于 2013-6-3 09:02
打错字了,是密码不对,它也会跳到主界面啊。密码不对,应该停留在登陆界面才是的。 ...

应该不会吧,你用qDebug()输出一下输入的信息,检查一下是哪里有问题。

可以下载源码运行一下试试,看看是否正确。
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-3 09:02:12 显示全部楼层
yafeilinux 发表于 2013-6-2 22:20
为何我的,密码不多,还是可以调到主界面的呢?

什么意思?

打错字了,是密码不对,它也会跳到主界面啊。密码不对,应该停留在登陆界面才是的。
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-6-2 22:20:59 显示全部楼层
caikeyter 发表于 2013-6-1 11:34
为何我的,密码不多,还是可以调到主界面的呢?

main.cpp:代码和教程的一样啊,为何呢?? ...

为何我的,密码不多,还是可以调到主界面的呢?

什么意思?
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-1 11:34:04 显示全部楼层
为何我的,密码不多,还是可以调到主界面的呢?

main.cpp:
  1. int main(int argc, char *argv[])
  2. {
  3.     QApplication a(argc, argv);
  4.     LoginDialog ld;
  5.     MainWindow w;

  6.     if(ld.exec()==QDialog::Accepted){
  7.         w.show();

  8.         return a.exec();
  9.     }else{
  10.         return 0;
  11.     }
  12. }
复制代码
  1. void LoginDialog::on_pbtnLogin_clicked()
  2. {
  3.     // 判断用户名和密码是否正确,如果错误则弹出警告对话框
  4.         if(ui->usrLineEdit->text().trimmed() == tr("caikeyter")
  5.                && ui->pwdLineEdit->text() == tr("123456"))
  6.         {
  7.            accept();
  8.         } else {
  9.            QMessageBox::warning(this, tr("Waring"),
  10.                                  tr("user name or password error!"),
  11.                                  QMessageBox::Yes);
  12.            // 清空内容并定位光标
  13.            ui->usrLineEdit->clear();
  14.            ui->pwdLineEdit->clear();
  15.            ui->usrLineEdit->setFocus();
  16.         }
  17. }
复制代码
代码和教程的一样啊,为何呢??
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2013-5-30 19:26:07 显示全部楼层
zhanglin 发表于 2013-5-29 22:22
main.c编译报错,logindilalog和dlg没有声明,是什么情况

看是否添加了改类的头文件;或者该类是否定义了。
回复 支持 反对

使用道具 举报

尚未签到

2013-5-29 22:46:23 显示全部楼层
LoginDialog dlg;
    if (dlg.exec() == QDialog::Accepted)
C:\Qt\qtcreator-2.4.1\login-build-desktop-Qt_4_8_1__4_8_1____\..\login\main.cpp:8: 错误:'LoginDialog' was not declared in this scope            C:\Qt\qtcreator-2.4.1\login-buildQt_4_8_1__4_8_1____\..\login\main.cpp:8: 错误:expected ';' before 'dlg'
回复 支持 反对

使用道具 举报

尚未签到

2013-5-29 22:22:18 显示全部楼层
main.c编译报错,logindilalog和dlg没有声明,是什么情况
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了