小编Ant*_*ara的帖子

什么图像格式可以c#加载最快?

这可能看起来像一个奇怪的问题,我不知道图像的格式所以我会继续问...

我正在制作一个使用按钮网格的扫雷游戏(与不同的东西相关),然后我使用按钮向按钮添加精灵backgroundImage.如果网格是9x9,那很好.15x15它减慢速度和30x30你可以看到每个按钮被加载.

这引出了我的问题:哪种图像格式加载速度最快?显然,文件大小是加载速度的一部分,但是,我正在询问是否,例如,jpeg - 与gif相同的文件大小 - 将加载更快.或bmp,png等

我问这是为了看看我是否可以使用不同的格式更快地加载网格.

谢谢!

c# performance image winforms

7
推荐指数
1
解决办法
3899
查看次数

如何终止正在进行的请求 Request 对象

编辑:在此修订/更新之前这个问题的主要部分是如何终止 QThread。这个问题已经解决了,问题正在修改为如何终止正在进行的请求剩余对象。

http://docs.python-requests.org/en/v0.10.4/user/advanced/#asynchronous-requests 看来使用异步请求仍然会阻塞 - 用户无法在发布过程中取消发布。

基本上这是所需的功能:当用户按下 时Stop Uploading,上传必须立即停止,我可以使用 stop() 停止线程,但是只有在循环再次循环后才会检查是否应该停止。

所以基本上,应该可以使用异步请求,让我检查是否应该在请求期间取消它,但是,我不知道如何取消。

有什么建议么?帖子的前一部分仍然相关,因此如下。
请注意,如何终止 QThread 的最初问题已经解决,因此下面的代码并不是太重要,它只是用于上下文,我现在需要帮助的是我刚才描述的内容。




我一直在编写一个程序,它是一个照片上传器,我创建了一个上传文件的线程。我不知道如何退出线程。我尝试过从这里读到的建议:

1)我尝试了一个 bool 标志,将它包裹在方法和执行工作的 for 语句周围。

2)我使用了“with”,然后尝试设置例外。

我希望能够取消上传,最好是尽快取消。我读过很多文章,总是建议在终止线程之前“清理”线程,老实说,我不知道“清理”是什么意思。但是,我认为我应该能够终止该线程 - 因为它所做的只是将图像的二进制数据发送到 TUMBLR api。如果提前取消请求也没关系,因为它也会取消 api 中的上传。

无论如何,这是我的主题:

class WorkThread(QtCore.QThread):
    def __init__(self):
        QtCore.QThread.__init__(self)
        global w
        w = WorkThread
    def __del__(slf):
        self.wait()        
    def run(self):
        url = 'https://www.tumblr.com/api/write'
        files = os.listdir(directory)
        for file in files:
            file_path = os.path.join(directory + '\\' + file)
            file_path = str(file_path)
            if file_path[-3:] in ['bmp', 'gif', 'jpg', 'png', 'thm', …
Run Code Online (Sandbox Code Playgroud)

python multithreading kill qthread python-requests

5
推荐指数
1
解决办法
5038
查看次数

在数组中获取枚举元素

我需要弄清楚如何在数组中的枚举上获取元素.基本上,我有一个9x9按钮网格.我有两个包含这些值的多维数组.一个人的名字(如果名字是43),它意味着5个向下,4个跨越(因为它们从0开始).该名称也与数组中的ELEMENT相同.

string[,] playingField = new string[9, 9];
enum CellType { Empty, Flag, Hidden, Bomb }
CellType[,] cells = new CellType[9, 9];
Run Code Online (Sandbox Code Playgroud)

按钮的名称保存在playingField中.
每个细胞的状态保存在细胞中(如果它是空的,有炸弹等)

感谢AbdElRaheim给出了上述内容.我这样做的原因是我可以获得一个按钮名称(与元素名称完全相同),这两个数组在两个数组中都是相同的.
例如:我可以这样做:

string dim1 = Convert.ToString(btn.Name[0]);
string dim2 = Convert.ToString(btn.Name[1]);
if (cells[Convert.ToInt32(dim1), Convert.ToInt32(dim2)] == CellType.Bomb)
Run Code Online (Sandbox Code Playgroud)

(请原谅我可怕的转换.我稍后会解决这个问题;))以及上面的内容是什么让我看看你点击的单元格下面是否有炸弹.

但是,我现在需要做的,基本上与此相反.在上面我知道我要比较的元素名称,因为元素名称与按钮名称相同.不过,现在我需要做的是通过获取是所有元素的元素查找元素名称(按钮名称)Bombcells.

我不知道怎么做,我试过:

foreach (CellType Bomb in cells)
{
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情.我需要在'cells'中找到所有'bomb'并返回元素名称.这样我可以使用该元素名称,将其转换为字符串,并使用我的StringToButton方法创建对按钮的引用.

这是我目前正在做的方式,作为参考,并帮助您更好地理解,但请注意这不是我想继续这样做的方式.我想按照上面提到的方式来做:)

foreach (string i in minedNodes)
{
    Button buttonName = StringToButton(Convert.ToString(i));
    buttonName.Image = new Bitmap(dir + "mine.png");
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# foreach enums for-loop minesweeper

5
推荐指数
1
解决办法
370
查看次数

参数1具有意外类型'Ui_mainWindow'

我正在尝试为我在这里的一些人的帮助下编写的一个小程序制作GUI,无论如何,我在PyQt中制作了GUI,看起来很好.我添加了一个名为dirButton的按钮,上面写着"选择目录"

self.dirButton = QtGui.QPushButton(self.buttonWidget)
self.dirButton.setGeometry(QtCore.QRect(0, 0, 91, 61))
self.dirButton.setObjectName(_fromUtf8("dirButton"))
self.dirButton.clicked.connect(self.browse)
Run Code Online (Sandbox Code Playgroud)

在底线,我点击它时调用self.browse,这是:

def browse(self):
    filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
    fname = open(filename)
    data = fname.read()
    self.textEdit.setText(data)
    fname.close()
Run Code Online (Sandbox Code Playgroud)

但是,这是我得到的错误:

Traceback (most recent call last):
File "C:\Users\Kevin\Desktop\python-tumblr-0.1\antearaGUI.py", line 88, in browse
filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
TypeError: QFileDialog.getOpenFileName(QWidget parent=None, QString caption=QString(),     QString directory=QString(), QString filter=QString(), QString selectedFilter=None, QFileDialog.Options options=0): argument 1 has unexpected type 'Ui_mainWindow'
Run Code Online (Sandbox Code Playgroud)

因此,ui_mainWindow是我的所有GUI按钮和GUI本身都存储在其中的类.

class Ui_mainWindow(object):
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我会收到错误,有没有人有任何想法?

这是一个指向整个GUI的pastebin链接:http://pastebin.com/BWCcXxUW

python pyqt pyqt4

4
推荐指数
2
解决办法
2万
查看次数

Foreach循环创建100个按钮,同时绘制所有按钮以防止闪烁

在我的扫雷游戏中,我需要动态创建控件,以便在easy - medium - hard之间切换.让我们说,为了问题,硬包含100个按钮.

这就是我创建它们的方式:

this.SuspendLayout(); //Creating so many things that I assume it would be faster to suspend and resume.
foreach (string i in playingField)
{

    Button button = new Button();
    button.Name = i;
    button.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
    button.Margin = new Padding(0);
    button.TabIndex = 0;
    button.Location = new System.Drawing.Point(3, 3);
    button.Size = new System.Drawing.Size(25, 25);
    button.BackgroundImage = blockImage; //##//
    button.MouseDown += new System.Windows.Forms.MouseEventHandler(this.GetUnderSide);
    button.UseVisualStyleBackColor = false;
    minesPanel.Controls.Add(button); //Adding the controls to the container
}
this.ResumeLayout(); //Refer to above. Correct …
Run Code Online (Sandbox Code Playgroud)

c# controls button

3
推荐指数
1
解决办法
5730
查看次数

QPixmap保持纵横比

我正在编写一个程序,允许我通过他们的API将照片上传到TUMBLR,我已经上传了(感谢你们).

我在GUI的一侧放了一个'queueBox',它显示了图像名称,它们存储在QListWidget中.我把它放在我的Main Class'构造函数中:

def __init__(self):
    QtGui.QMainWindow.__init__(self)
    self.setupUi(self)
    self.queueBox.itemClicked.connect(self.displayPhoto)
Run Code Online (Sandbox Code Playgroud)

我有这个方法:

def displayPhoto(self, item):
    tempName = (item.text())
    print tempName
    self.myLabel.setPixmap(QtGui.QPixmap(_fromUtf8(directory + '\\' + tempName)))  
    ## self.myLabel.pixmap(QPixmap.scaled(aspectRatioMode = Qt.IgnoreAspectRatio))
    ## ^ ^ ^ What do I do with this? How do I set it to maintain aspect ratio?
    ## Currently it says ''NameError: global name 'Qt' is not defined''
Run Code Online (Sandbox Code Playgroud)

这成功地将图像绘制到myLabel,这是一个QLabel,然而,它是非常规模的,我有

self.myLabel.setScaledContents(True)
Run Code Online (Sandbox Code Playgroud)

在我的ui_mainWindow类中,如果我将其转换为False,它会修复缩放,但它只显示图像的一小部分,因为图像比QLabel大得多.我想要的是能够保持纵横比,所以它看起来不会缩放和可怕.

我发现了这个:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qpixmap.html 它说如何使用它,但是我无法让它工作,如上面的代码所示在我的评论中.有谁知道如何使用它?如果是这样,你能给我一个例子吗,我试过搜索但是我得到的大部分结果都是用C++编写的例子,而不是python.

谢谢!

python aspect-ratio pyqt4 qpixmap qlabel

2
推荐指数
1
解决办法
9908
查看次数

改进我的扫雷算法c#

我正在制作一个扫雷游戏,到目前为止它完全可以玩,你可以完成游戏.但是,我的求解算法很糟糕.它非常混乱,我正在寻找一种更清洁的方式,也许是循环,但我想不出任何东西.

这是我目前正在使用的:

我有四个全球名单:

    List<String> flaggedButtons = new List<String>();
    List<String> minedNodes = new List<String>();
    List<String> playingField = new List<String>();
    List<String> adjacence = new List<String>();
Run Code Online (Sandbox Code Playgroud)

这是利用列表来解决游戏的方法:

整个方法:http://pastebin.com/7J2Fc8yw

最重要的部分:

            char btnLetter = Convert.ToChar(buttonName.Substring(0, buttonName.Length - 1));
            char aboveLetter = btnLetter; aboveLetter--;
            char belowLetter = aboveLetter; belowLetter++; belowLetter++;
            int upDown = Convert.ToInt32(buttonName.Substring(1));
            int leftSide = Convert.ToInt32(buttonName.Substring(1)) - 1;
            int rightSide = Convert.ToInt32(buttonName.Substring(1)) + 1;

            //Clear the list by making a new list before adding the new values as to not overlap. …
Run Code Online (Sandbox Code Playgroud)

c# loops solver minesweeper

2
推荐指数
1
解决办法
1097
查看次数

将自定义属性添加到按钮控件c#

我正在建造一个可能完成75%的国际象棋游戏,这是一个零计划的冲动,因此非常混乱.

我有三个多维数组,一个包含枚举Colour,另一个包含枚举,ChessPiece最后一个包含坐标.

我想清理它,有两件事我能想到.

1)面向对象的编程.我可以构建一个具有Color,Coordinates和Piece属性的类,然后在游戏开始时实例化每个部分,并引用每个实例.

2)如果我可以向按钮控件添加属性,类似于类的属性,则更容易.即 button1.Piece = Pawnbutton1指的是实际按钮.

有没有办法做到这一点?谢谢.

c# oop controls properties button

2
推荐指数
1
解决办法
1739
查看次数

100%的数组在函数中正确,75%的数组在CALLING函数中正确 - C

注意:我正在使用c ++编译器,因此我可以使用pass by reference

我有一个奇怪的问题,我真的不知道发生了什么.

基本上,我有一个文本文件:http://pastebin.com/mCp6K3HB ,我正在将文本文件的内容读入一个原子数组:

typedef struct{
    char * name;
    char * symbol;
    int atomic_number;
    double atomic_weight;
    int electrons;
    int neutrons;
    int protons;
} atom;
Run Code Online (Sandbox Code Playgroud)

这是我对atom的类型定义.

void set_up_temp(atom (&element_record)[DIM1])
{
    char temp_array[826][20];
    char temp2[128][20];
    int i=0;
    int j=0;
    int ctr=0;

    FILE *f=fopen("atoms.txt","r");

    for (i = 0; f && !feof(f) && i < 827; i++ ) 
    {
        fgets(temp_array[i],sizeof(temp_array[0]),f);
    }

    for (j = 0; j < 128; j++)
    {
        element_record[j].name = temp_array[ctr];
        element_record[j].symbol = temp_array[ctr+1];
        element_record[j].atomic_number = …
Run Code Online (Sandbox Code Playgroud)

c c++ arrays struct output

1
推荐指数
1
解决办法
149
查看次数

Resokper的Monokai(Sublime text 2)主题(c#)

正如你可能知道的那样,当语法突出显示为Sublime Text 2时,Visual Studio不提供相同的自由度(受意见/偏见,这是我的),但是,Resharper在语法方面确实有一些功能突出显示改进Visual Studio的默认突出显示.

所以说,在我开始制作之前,有没有人有一个Monokai - 默认的Sublime Text 2主题 - 为Resharper?

我知道我可以使用studiostyl.es - 但是这些主题仅适用于Visual Studio,因此Monokai主题仅大致相当于ST2中提供的Monokai.

如果有人有这个主题,你能把它贴在这里吗?

谢谢.:)

resharper themes visual-studio

1
推荐指数
1
解决办法
1万
查看次数