私のコードは、GUIにあるこのです: -ソート用のGUI:ソートの各ステップで特定の数字を色分けする方法は?バブルソートのための
def bubble(self):
def bubble_sort (array) :
swap_test = False
for i in range (0, len (array) - 1):
for j in range (0, len (array) - i - 1):
if array[j] > array[j + 1] :
array[j], array[j + 1] = array[j + 1], array[j]#elegentan way of swap
swap_test = True
break
#if swap_test == False:
#else:
#self.create_label()
#print('bubble to be implemented')
bubble_sort(self.nums)
return self.nums
だから私は、配列[j]はのような1つのステップのためswapedされており、配列[J + 1]が交換された色要素にしたいです。
ボタンをソートし、ラベルにそれを格納するために使用される機能が
def sortit(self):
function = self.function[self.v.get()]
result = function()
num = ''.join('%4i' % num for num in result)
self.label3 = Label(self, text=num, width=2, height=2)
self.label3.grid(row=5, columnspan=10, sticky=W+E+N+S)
OKのスクリーンショットは
のようですので、私は何をしているのは、バブルにスワップした後のようなものですソート8が最初に来たので、すべてではなくスワップされている数字に色を付ける必要があります。
ok私はこれを試しましたが、23のような最初の数字だけを青色で表示していて、それを任意の数にランダムに表示しています。だから、私は何をしようとしていたのは、各要素のテキストボックスを別々にして、スワップされている参加者を色付けすることです。しかし、それは最後の数字だけを表示するので、私はちょうど上記のコードで問題の与えられたforループを適用しました。しかし、それは動作していません –
私は参照のための私の完全なコードの残りの部分を追加することができます...私もループのために試みたが動作していない.. –
青で?彼らは赤です!あなたは前進する前に何をしているのかを理解しなければなりません。私の質問の方法は一般的なもので、具体的ではないが、唯一の制限は、数値は999以下でなければならないということである。間違った番号に色を付けると、それはテキストタグ付け戦略の障害ではありません。数字の文字列の構造やタグの動作方法、タグインデックスの設定方法などを確認し、間違ったことを発見します。また、関数呼び出しと引数がどのように機能するかを確認する必要があります。あなたのコード内のbubble_sortバブルの呼び出しは、非常にひどく冗長です。 – joaquin