将枚举类型转换为字符串
- 这里使用的在网络编程中,获取socket状态并显示的时候,遇到的一个问题
#include <QMetaEnum>
QMetaEnum metaEnum = QMetaEnum::fromType<QAbstractSocket::SocketState>();
const char *c_str = metaEnum.valueToKey(socketState);
QString str = QString(c_str);
使用事件过滤器实现,点击lineEdit,按下回车,调用btn的点击槽函数
ui->lineEdit->installEventFilter(this);
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (obj == ui->lineEdit && event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return)
{
ui->btnSendMsg->click();
return true;
}
}
return QObject::eventFilter(obj, event);
}
设置插入到QplainTextEdit中的文字样式
void MainWindow::InsertPlantText(QString text, int fontSize, QColor fontColor, QColor backColor)
{
QTextCharFormat originFmt = ui->plainTextEdit->currentCharFormat();
QTextCharFormat fmt;
fmt.setFontPointSize(fontSize);
fmt.setForeground(QBrush(fontColor));
fmt.setBackground(QBrush(backColor));
ui->plainTextEdit->mergeCurrentCharFormat(fmt);
ui->plainTextEdit->appendPlainText(text);
ui->plainTextEdit->setCurrentCharFormat(originFmt);
}
设置图标
this->setWindowIcon(QIcon(":/images/wx.ico"));
RC_ICONS += wx.ico
网络编程
获取本机IP地址
QString getLocalIP()
{
QString hostName = QHostInfo::localHostName();
QHostInfo hostInfo = QHostInfo::fromName(hostName);
QList<QHostAddress> addrList = hostInfo.addresses();
QString localIp = "";
if(!addrList.isEmpty())
{
for(int i = 0; i < addrList.count(); i++)
{
QHostAddress addr = addrList.at(i);
if(addr.protocol() == QAbstractSocket::IPv4Protocol)
{
localIp += addr.toString() + " ";
}
}
}
return localIp;
}