当前位置:编程学习 > wap >>

QT,现在做一个界面在一个lineEdit里输入路径名就能使得源码下载到写入的这个路径名里怎么写?

我用:connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SLOT(download()));
下载函数download()
{
/*system("eval `ssh-agent`");
system("curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo");*/
system("mkdir s");//这里怎样写???怎样实现在lineEdit输入的路径名就是下载到的目录名
} --------------------编程问答-------------------- download()槽也加上参数:
download(const QString &),直接用就好了啊 --------------------编程问答--------------------  编辑框的内容一有变化就会进行下载 这样设计似乎不合理  --------------------编程问答-------------------- 没注意这个问题,楼上的说的对,你应该连接编辑完成的信号:editingFinished()
再自己定义一个信号把Lineedit的内容传过来。

connect(lineEdit,SIGNAL(editingFinished()),this,SLOT(slotEditOver()));

void slotEditOver()
{
    download(lineEdit.text());
} --------------------编程问答-------------------- #include <QtGui>
#include"gotocelldialog.h"
GoToCellDialog::GoToCellDialog(QWidget*parent):QDialog(parent)
{
   setupUi(this);
}

void GoToCellDialog:: download(string)
{
system("mkdir lineEdit.text()");
}
void GoToCellDialog::on_lineEdit_textChanged()
{
connect(lineEdit,SIGNAL(editingFinished()),this,SLOT(slotEditOver()));
}
void GoToCellDialog:: slotEditOver()
{
    download(lineEdit.text());
}
/home/apuser/qt1/gotocelldialog.cpp:-1: In member function ‘void GoToCellDialog::slotEditOver()’:
/home/apuser/qt1/gotocelldialog.cpp:30: 错误:request for member ‘text’ in ‘((GoToCellDialog*)this)->GoToCellDialog::<anonymous>.Ui::GoToCellDialog::<anonymous>.Ui_GoToCellDialog::lineEdit’, which is of non-class type ‘QLineEdit*’
/home/apuser/qt1/gotocelldialog.cpp:-1: In member function ‘void GoToCellDialog::download(std::string)’: --------------------编程问答--------------------
引用 4 楼 loveyou1985 的回复:
#include <QtGui>
#include"gotocelldialog.h"
GoToCellDialog::GoToCellDialog(QWidget*parent):QDialog(parent)
{
   setupUi(this);
}

void GoToCellDialog:: download(string)
{
system(……


void GoToCellDialog::download()
 {
 system("mkdir lineEdit.text()");
 } --------------------编程问答-------------------- void GoToCellDialog:: download()
{
QString qsText =  lineEdit->text();//obtain lineEdit name
QString a="mkdir ";
a.append(qsText);
}

 system(a.toStdString().data());//make file
}
void GoToCellDialog::on_lineEdit_textChanged()
{
connect(lineEdit,SIGNAL(editingFinished()),this,SLOT(download()));
}
我这样做果会是,当我在lineEdit里输入路径名aa的时候就产生一个aa文件夹,当我接着输入到三个aaa时就又会产生aaa文件夹,有没有哪个函数判断输入结束的时候才产生文件夹,麻烦告知一下怎样改,先谢谢啦!! --------------------编程问答-------------------- editingFinished(),这个信号就是在编辑完成之后才会发出,你看一下Qt帮助,动脑筋想一下。
这个信号只有按下回车键或光标不在lineEdit,才会发出,你肯定是敲完aa,去看了一下目录,这时候肯定有aa,因为光标已经不在里边了。你再敲再去看,这又是一次编辑完成,又会发一次,那肯定是两个了。 --------------------编程问答-------------------- 要是有问题的话,那应该是3个文件夹,也不是两个,应该是a、aa、aaa三个。这个是你之前那样写的问题。
editingFinished(),这个信号只要焦点不在lineedit里边,就是一次编辑完成。 --------------------编程问答-------------------- 原来如此,谢谢大哥了嘿嘿!!小妹受教了!!
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,