Qt入门的总结

 看别人的代码时,经常会出现编译输出这个“当执行构建步骤 'qmake'时”,

而没有任何东西输出。

解决:(1)尽量保证工程文件路径不为中文;

  (2)还有一个原因可能是别人电脑运行时生成的.pro.user文件不匹配,删

除重新打开工程编译,此文件会进行重建。

还有一个关于连接动态库的问题,当时搞得比较烦,我想从文件debug

的exe执行,进行调试,结果一打开就出现找不到动态库mingwm10.dll,网上下

下来放在工程目录,再运行会发现找不到libgcc_s_dw2-1.dll,一样的再下下来,

缺什么下什么就放在当前目录,后发现在找完Qtcored4.dll就出现不是缺少库的

原因了(可能是不兼容的影响)。当时还把这三个动态库放到了C:\Windows\System32中想着就不要总是打开一个工程就添加这些库,结果出现以前能执行通过的程

序不能执行了,就出现启动中....程序异常终止的错误,当时没发现可能是qtcored4.dll

这个库不兼容。

解决:其实在Qt安装完的文件里都会有这些动态库,要通过加入到系统的环

境变量,执行步骤打开计算机属性->高级系统设置->高级->环境变量->找到变

量path,把qt的动态库添加到这里,不是覆盖是添加,比如我的qt路径是E:\qt\Desktop\Qt\4.8.1\mingw\bin。

还可以在qt中添加,打开qt项目也有环境变量设置。这些问题都是指有界面的工程。

解决这些问题终于可以进行技术性的劳动了。

看了用qt写的一个基于udp的聊天室,涉及到界面的功能有保存聊天记录,

关闭和发送按钮,字体大型类型、颜色,聊天记录的删除等下面是关于槽函数

的代码,可以从中受启发。


private slots://槽函数

    void on_textUnderline_clicked(bool checked);
    void on_clear_clicked();
    void on_save_clicked();

    void on_textcolor_clicked();
    void on_textitalic_clicked(bool checked);
    void on_textbold_clicked(bool checked);
    void on_fontComboBox_currentFontChanged(QFont f);
    void on_fontsizecomboBox_currentIndexChanged(QString );
    void on_close_clicked();
    void on_sendfile_clicked();
    void on_send_clicked();

void Widget::on_send_clicked()
{
    sendMessage(Message);
}


void Widget::on_sendfile_clicked()
{
    if(ui->tableWidget->selectedItems().isEmpty())
    {
        QMessageBox::warning(0,tr("选择用户"),tr("请先从用户列表选择要传送的用户!"),QMessageBox::Ok);
        return;
    }
    server->show();
    server->initServer();
}


//关闭
void Widget::on_close_clicked()
{
    this->close();
}


bool Widget::eventFilter(QObject *target, QEvent *event)
{
    if(target == ui->textEdit)
    {
        if(event->type() == QEvent::KeyPress)
        {
             QKeyEvent *k = static_cast<QKeyEvent *>(event);
             if(k->key() == Qt::Key_Return)
             {
                 on_send_clicked();
                 return true;
             }
        }
    }
    return QWidget::eventFilter(target,event);
}


//字体设置
void Widget::on_fontComboBox_currentFontChanged(QFont f)//字体设置
{
    ui->textEdit->setCurrentFont(f);
    ui->textEdit->setFocus();
}


//字体大小
void Widget::on_fontsizecomboBox_currentIndexChanged(QString size)
{
   ui->textEdit->setFontPointSize(size.toDouble());
   ui->textEdit->setFocus();
}


//粗体设置
void Widget::on_textbold_clicked(bool checked)
{
    if(checked)
        ui->textEdit->setFontWeight(QFont::Bold);
    else
        ui->textEdit->setFontWeight(QFont::Normal);
    ui->textEdit->setFocus();
}


//斜体设置
void Widget::on_textitalic_clicked(bool checked)
{
    ui->textEdit->setFontItalic(checked);
    ui->textEdit->setFocus();
}


//下划线设置
void Widget::on_textUnderline_clicked(bool checked)
{
    ui->textEdit->setFontUnderline(checked);
    ui->textEdit->setFocus();
}


//文本颜色
void Widget::on_textcolor_clicked()
{
    color = QColorDialog::getColor(color,this);
    if(color.isValid())
    {
        ui->textEdit->setTextColor(color);
        ui->textEdit->setFocus();
    }
}


//保存聊天记录
void Widget::on_save_clicked()
{
    if(ui->textBrowser->document()->isEmpty())
        QMessageBox::warning(0,tr("警告"),tr("聊天记录为空,无法保存!"),QMessageBox::Ok);
    else
    {
       //获得文件名
       QString fileName = QFileDialog::getSaveFileName(this,tr("保存聊天记录"),tr("聊天记录"),tr("文本(*.txt);;All File(*.*)"));
       if(!fileName.isEmpty())
           saveFile(fileName);
    }
}


//保存文件
bool Widget::saveFile(const QString &fileName)
{
    QFile file(fileName);
    if(!file.open(QFile::WriteOnly | QFile::Text))


    {
        QMessageBox::warning(this,tr("保存文件"),
        tr("无法保存文件 %1:\n %2").arg(fileName)
        .arg(file.errorString()));
        return false;
    }
    QTextStream out(&file);
    out << ui->textBrowser->toPlainText();


    return true;
}


//清空聊天记录
void Widget::on_clear_clicked()
{
    ui->textBrowser->clear();
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值