QT 完蛋玩意儿 motedialog.cpp

本文介绍了一个记事对话框的设计与实现细节,包括如何响应用户输入改变按钮状态、控制界面元素的可用性以及音乐文件的选择和播放等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "notedialog.h"

#include "ui_notedialog.h"

#include "addDialog.h"

#include "ui_addDialog.h"

#include <Phonon/AudioOutput>

#include <QString>

#include <QFileDialog>

#include <QFile>

#include <QTextCodec>

#include <QTranslator>

#include <QLocale>

#include <QSound>

#include <QIcon>

#include <QMessageBox>

 

 

NoteDialog::NoteDialog(QWidget *parent)

: QDialog(parent), ui(new Ui::NoteDialogClass)

{

ui->setupUi(this);

ui->OKButton->setEnabled(false);

 

ui->dateEdit->setDate(QDate::currentDate());

ui->timeEdit->setTime(QTime::currentTime());

ui->alarmDEdit->setDate(QDate::currentDate());

ui->alarmTEdit->setTime(QTime::currentTime());

connect(ui->musicButton, SIGNAL(clicked()), this, SLOT(openFile()));

 

QTextCodec::setCodecForTr(QTextCodec::codecForName("gb2312"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

 

}

 

NoteDialog::~NoteDialog()

{

delete ui;

}

 

 

// item 若为空,则“确定”按钮不可用

void NoteDialog::on_itemTxt_textChanged()

{

if(ui->itemTxt->toPlainText().isEmpty())

{

 

ui->OKButton->setEnabled(false);

}

else

{

ui->OKButton->setEnabled(true);

}

}

 

//alarmCheck控制其子项的可用性

void NoteDialog::on_alarmCheck_toggled(bool checked)

{

if(ui->alarmCheck->isChecked())

{

ui->alarmDEdit->setEnabled(true);

ui->alarmTEdit->setEnabled(true);

ui->musicLine->setEnabled(true);

 

ui->musicButton->setEnabled(true);

ui->playButton->setEnabled(true);

}

else

{

ui->alarmDEdit->setEnabled(false);

ui->alarmTEdit->setEnabled(false);

ui->musicLine->setEnabled(false);

 

ui->musicButton->setEnabled(false);

ui->playButton->setEnabled(false);

}

 

}

//浏览本地文件夹,选择音乐文件作为闹钟声音

void NoteDialog::openFile(const QString &path)

{

QString fileName = path;

 

if (fileName.isNull())

fileName = QFileDialog::getOpenFileName(this,

"打开音乐文件", "", "WAV格式 ( *.wav)");

 

ui->musicLine->setText(fileName);

}

 

 

//播放闹钟声音,控制playButton状态

void NoteDialog::on_playButton_clicked()

{

static int iCountMusic = 0;

 

iCountMusic++;

 

QIcon icon1;

icon1.addPixmap(QPixmap(QString::fromUtf8(":/new/prefix1/imgs/play.png")),

QIcon::Normal,

QIcon::Off);

QIcon icon2;

icon2.addPixmap(QPixmap(QString::fromUtf8(":/new/prefix1/imgs/stop.png")),

QIcon::Normal,

QIcon::Off);

 

QSound music(ui->musicLine->text());

if(iCountMusic%2 == 1)

{

ui->playButton->setIcon(icon2);

music.play();

}

else if(iCountMusic%2 == 0)

{

ui->playButton->setIcon(icon1);

music.stop();

}

}

 

 

void NoteDialog::on_itemCombo_currentIndexChanged(int index)

{

if(index == ui->itemCombo->count()-1)

{

addDialog aDialog(this);

if(aDialog.exec())

{

QString str = aDialog.getText();

ui->itemCombo->insertItem(0, str);

}

}

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值